[Música] olá hoje vamos para a nossa aula de número 6 essa aula a gente vai falar sobre a parte de pacote online pode de repente por outro lado do computador por falta de tempo a gente vai disponibilizar dentro do nosso ambiente estão material para estudo bom quase objetivo não é uma visão geral sobre park lane e apresentar algumas formas de implementação bom com a ideia não o pacote tem um pilar em relação à melhoria de desempenho uma em função da melhoria na tecnologia a imposição de circuitos mais rápidos que a gente viu na a1 e
outras melhorias em relação à organização arquitetura organização é como havia comentado a onu também a relação de múltiplos registradores de aceleram utilização é de memória cache cada vez maiores e o pai pillai na instrução que é o foco já é bom passar uma ideia básica do que é um piper ine então a gente né como sistema de produção do rei do pop online ela é feita imagina por exemplo de uma lavanderia composta de quatro estágios lavar secar passar e guardar imagine que você tenha executar quatro tarefas se você fizer de forma seqüencial você vai usar
quatro vezes 4 16 dezesseis estágio ou se os tempos foram iguais nénão tomada de tempo aqui 16 unidades de tempo bom será que eu consigo acelerar esse processo 5 no caso por exemplo se eu começar aqui o estágio de lavar terminado a lavagem e oponho primeira né a primeira tarefa para secar ea segunda né já entra pra lavar eu já consegue acelerar no terceiro estágio se eu colocasse terceiro para lavar o segundo para secar eo eo próximo pra passar o acelera até um ponto ao que eu tenho todos os estágios né trabalhando paralelamente ou seja
ocupando né eu não tenho nada ocioso e especificamente nesse caso não quer dizer 'nossa 16 eu vou usar sete unidades de tempo é um ganho considerável bom relembrando o nosso ciclo instrução ele apresentou é na aula três são basicamente que a gente tem meus filhos estão vários vários estágios tem dois a mais aqui né a gente não tem a ver colocado anteriormente a verificação da página interrupção então todos eles a oportunidade de você aplicar paterlini um pega um papel e online com base na instrução com o correspondente a dois estágios então esse método que a
gente vai chamar de busca antecipado de prefetti toques e tem uma instrução normal tá instrução leitura instrução execução dois estágios então não há como a gente poderia colocar isso acelerar o faz que a leitura aproveitar o ciclo de memória de execução atual para obter a próxima executamos o próximo a próxima instrução ou seja enquanto o primeiro está executando o já faz com que a leitura da próxima instrução tá pra que você tem um ganho efetivo é você tem que ter que o tempo de leitura execução sejam equivalentes ou próximos né se você não tem um
ganho efetivo ou seja o tempo total vai selecionar aquele de maior gargalo no caso específico o de execução é sempre é maior porque pra ler e armazenar operando se tem maior tempo ou no caso de instruções de desvios é que a gente não conhece antecipadamente ou não tem o endereço de desvio então você gasta o tempo para aguardar a próxima instrução como regra básica para a gente tentar melhorar essa situação que a gente faz o estágio de leitura sempre obtenha próxima instrução de memória a próxima após o desvio bom se esse desvio ocorrer a instrução
é despertada caso não é eu ganhei vem tempo está bom pelo menos um ciclo a mais bom aqui vou imaginar um painel composto dos seguintes estágios não é composto de seis estágios 1 de bo um estágio de de busca de instrução efe outro de decodificação chamada de cálculo de operando cef ó música de operando vôos e ó efe função de instrução e iii e escrita é o operando denominado de w imagina isso aqui dentro de um pilar na que seria o melhor aproveitamento do parque online imagine que você tenha novas instruções e todos os estádios
poderão ser utilizados aqui no caso o nome instruções você precisaria de 14 ciclo de tempo supondo que cada setor tem que ser idêntico na época um dos estágios para executar essas novas operações vocês tenham o máximo de aceleração isso é uma instrução é uma situação não é ideal agora imagine uma situação na qual a gente tem um desvio né imagina você tem um desvio de uma instrução 3 como instrução 15 nessa situação que acontece esse desvio eu só vou descobrir o efetivamente na execução por exemplo de um shopping exatamente na parte de execução quando o
conjunto tudo aquilo que o carregue não pode lá eu tenho que descartá lo tá aí eu tenho que fazer descarte e carregar é o endereço alvo né destino aqui no caso aí novamente né você começa a carregar o pai pioline e percebi que eu tenho uma penalidade porque nesse intervalo aqui efetivamente nesse intervalo aqui eu não tenho nenhuma produção de instrução ou na verdade a execução total somente aqui nesse intervalo de nove a 12 eu tenho essa finalidade aqui eu estaria ou teria que estar junto bater novamente em função da qualidade de sono estágio 13
e como funcionaria o fluxograma é relacionado a um estágio de papelão você tenha busca de instrução decodificação cálculo operando se esse destino for tomado por que você tem que fazer tal altera o pc computador de programa ou proximidades da praça instrução assim é executada você tem que esvaziará o pop online volta e se não for formado então beleza pega a instrução seguinte não é fácil a busca do operando execução e eu vejo se tem no caso de interrupção não se tiver interrupção nem novamente tem que fazer a atualização descarte ou senão não volta o fluxo
é bom aqui uma outra visão do pai pra mim agora eu só modifiquei aqui as linhas estão tempo e aqui tá os estágios do parque laine perceba tem uma interessante né uma visão que durante todo esse esse período de tempo para o plano está totalmente carregado seria melhor otimização possível quando ocorre um desvio por exemplo onde eu tenho de carregar o papel e online então eu tenho perda completa o descarte disse que pode entender que tem que ocorrer o que você já está nesse estágio sakineh eu tenho perda e o pai plano vai novamente seu
carregado bastante ciclo após na uma situação como essa bom conclusões importantes aqui né quanto maior o número de estágio do pop online maior será a taxa de execução só que esse fator é um é essa definição pode ser fruto tarô frustrado por alguns é o programa situação situações por exemplo estágio pilares é de maior exige maior esforço é para movimentação de dados pode frustrar exatamente essa definição nessa conclusão anterior por exemplo instruções seqüenciais com dependências lógicas ou desvio intensivos desviu acaba acontecendo exatamente o problema ou uma outra situação que a lógica de controle de passagem
de um estágio para outro debate online ela pode ser mais complexa que o próprio estágio do pai kline então esses dois fatores podem não dar um ganho esperado bom aquilo que a gente denomina de situações de rasgo tão rasa na verdade a tradução é um perigo risco né suas situações que pode resultar em um desempenho menor que a sua situação ótima aquela situação ideal que a gente havia passado inicialmente a gente chama de raça de pilar eo também de bolha né de pac on line quando isso ocorre não é como o pai pilar em algum
estágio ou parte dele não precisa parar porque alguma porque as condições não permitem a execução contínua quais são os tipos mas se considera que a gente consegue consertar categorizar em três tipos básicos de razão e causa de recursos dados e controle vão começar primeiro chama de harvard tá de recurso estrutural você também encontra a literatura base para entender né você tem instruções que são executadas insere imaginou as instruções e sendo executado em séries e duas delas precisam do mesmo recurso por exemplo acesso e memória ou por exemplo uma urna a memória que vão partir do
pressuposto que pode ser feita somente uma por vez o acesso aí no caso específico vai ocorrer até 11 uma situação de ociosidade está porque vai ter que aguardar como um acesso em seqüência e insere uma vá a alguma instrução que vai de espera a outra conclui protetor acesso um pedaço exemplo imagina que esse tempo e pela ideal é exatamente nessa situação você tem né é essa a primeira instrução e querem fazer buscas operando e essa no pipeline vai ter que buscar busca da instrução então exatamente são duas buscas memória então pra que isso possa ocorrer
o que eu tenho que fazer tem que botar uma bolha aqui na mostra ociosidade deixamos um campeonato onde chama de nó qual é a ideia aqui né é pra você tentar eliminar esse tipo de problema não é você adicionar várias portas de acesso simultâneo a memória ousar né mais de uma hora você pode minimizar esse tipo de arranjo recurso outro que a gente chama de rasgar de dados com a ideia que o conflito aqui no caso é acesso a uma posição de operando ou seja duas instruções querem acessar a mesma posição de operando tá aí
acontece duas instruções executados em seqüência ta ta acessam esse mesmo perante o que pode será no caso uma memória um registrador quais são as situações que a gente pode ter o tipo por exemplo você pode ter uma leitura deve ocorrer após escrita em situação normal ou seja você vai lá atualiza a escrita e depois né na seqüência o que você faz você foi fazer leitura de 1 a 0 deu ocorre quando quando a leitura ocorre antes da escrita e produz um erro outra situação se a escrita deve ocorrer após a leitura nesse caso específico como
acontece rasante é quando a escrita é completada após a apuração de leitura eo último não é que a escrita ou duas escrita manuscrita deve ocorrer após a outra rosa de ocorre quando eu vou acontece exatamente o processo inverso tá no caso das crianças é bom pegar um exemplo fica um pouco mais claro né imagina você tem aqui um trecho de código você tenha soma 12 né registradores e eu preciso para fazer a operação no caso vai ser e ashes não há dever vai ser a x com um abc ou seja esse cara é retomar o
contato dele com conteúdo do registrador que o próximo vai usar o que exatamente é o conteúdo desse para fazer a subtração precisa bater existe uma dependência que o que acontece aqui no quadro no quadro geral então você tem aqui um peeling no caso você tem instrução de adi ela só vai apresentar um resultado exatamente no estado nesse estágio nó de aquino do momento de armazenamento e eu subi ele precisa exatamente no final no estágio de itá na parte de decodificação ou especificamente o que acontece como existe essa defasagem você tem que ter dois ciclos né
ociosas aqui o duas bolhas para que eu consiga compensar esse tipo de razão outro que a gente chama de razão e também de controle onde desviu e o pai pioline ele tem que tomar uma determinada decisão time perder né se um determinado e vai ocorrer ou não ele tomou uma decisão errada nesse caso o que acaba acontecendo a equipe online precisa ser descarregado quais são as abordagens para tentar esse tipo de razão basicamente a gente tem no caso aqui cinco né múltiplos fluxos busca antecipada do alvo de desvio buffer né de laço de repetição que
é um conjunto de memória rápido anna pequena ea previsão de desvio que a gente chama e também de bent pedir que não quer comentar jornal né e aquilo que chamo de desviar trazendo uma olhadinha básica aqui né bom rasgar rasgar de controle pode ser múltiplos fluxos quando você tem uma execução aqui o desvio é preciso buscar duas instruções então a idéia básica o carrego inicialmente as partes iniciais de ambos como eu não sei qual deve ser tomada então aquela que a decisão foi feita eu já tenham carregado qual é o problema aqui o último os
próximos estágios de pipeline acabam gerando mais atrás tá isso em um acesso agitador e memória instruções de desvios adicionais no pipe line o que acaba fazendo com quê né esses deveres e adicional sejam inclusive própria necessidade de novos fluxos tá estranho pode gerar atraso bom o outro né relacionada que eu falei foi buscar antecipada do desvio com a ideia básica aqui né quando tem um desvio condicional é reconhecido o áudio civil é lido antecipadamente além da instrução que segue o desvio então você vê os dois e lê tanto desvio como a próxima instrução a aposta
é na sequência do desvio e ciel então é salvo e no caso né é é aqui no caso se o desempenho for tomada o que acontece o dado já obtido você já leu e o bufê é de lá que eu comentei se uma pequena memória extremamente rápida até mantida né bem pelo pipeline o que você faz e mantém eles instruções que foram recentemente é líder é aquele conceito kv comentário de localidade se um desvio está aí o seu desvio estava para ser tomado o rádio é o primeiro que ele faz ele consulta especificamente se estiver
presente ele já ganhou tempo caso não que tem que fazer tem que trazer o papo online tá essa instrução que não falam não faz parte do dessa memória um caso memória quer um bom rácio de controle ainda detalhando rosa de de controle pode ser dividido algumas técnicas basicamente em 5 a previsão nunca tomada ou seja parte do pressuposto que a instrução nunca vai ser tomada ou desvio você tomando previsão sempre tomada seja sempre haver desvio previsão para o code isso nós denominamos como técnicas não é estática ou seja não depende de nenhum tipo de histórico
e existem outras duas chamadas chove tomada não tomada tá e tabela de escritório de viu que é basicamente a que ele chama de técnicas dinâmicas que depende um histórico de execução bom vamos pegar a abordagem estática é a mais simples das duas bases que a gente assume é que a gente tem que assumir que o diesel nunca será tomada é o caso mais usual ou então assume que o desvio será sempre tomada bom existe estatísticas que levantou demonstram é que o caso né sempre tomado normalmente nettheim maior desempenho bom outra abordagem é tomar a decisão
com base no pacote é nesse caso específico do pico onde ele assume que alguns o picou diz né ou selecionamos o procon diz que sempre né esse sobre cores vão ser utilizados para devotar desvio normalmente esse tipo de adoção tem uma boa bom movimento em torno de 75% e as dinâmicas né a base a idéia básica é tentar melhorar a precisão do armazenamento através de um histórico de instruções através daquele buffer né havia comentado chave tomadas e não tomadas que basicamente ele faz né armazena um mais bits associados a cada instrução eo armazena esses bichos
nessa nessa memória isso reflete o histórico recente de utilização da desse tipo de instrução ela pode ser utilizada através do que nem comentei de memória cache e direção não precisará tomar um determinado a decisão na próxima instrução que vai ser encontrado em função desta memória dessa tabela pode ser armazenado idéia básica de funcionamento imagina só nesse item o início da execução não ler a próxima instrução de desvio o que ele prevê prever que será tomada o desvio se for tomado desvia o setor senão que ele faz não ler a próxima instrução tá se for tomado
beleza de volta o fluxo anterior senão que acontece e vai pro outro ramo do fluxograma e até o que é interessante naquele previa ac prevê que será tomado aquele prazer que não será tomado e usa isso como regra básica se se não se for beber que não será tomada se for verdadeiro foi tomada assim ele consegue ficar dentro do fluxo se for não duas vezes o que acontece em volta do anterior ou seja a idéia básica é uma presença previsão for errada o próximo desafio ainda será tomada é o caso aqui né o marítimo requer
duas previsões erradas no caso aqui é essa por exemplo errado encerrada primo de um lado né ou mudar a decisão de previsão é que será tomado ou não tomando aqui é uma ideia básica de implementação dentro do carro então aqui é basicamente eu tenho a tabela tem como parâmetros básicos endereço de instrução de desvio endereço alvo de desvio e o estado s foi executada não aqui tem um estádio do parque line então em função do estádio pra cá ele faz um tratamento de erro por exemplo atualizar né no caso da tabela se por exemplo esse
desvio não não foi incluso ou atualizar o estado no caso específico né se for executado não ou adicionar uma nova né ou adicionar uma nova copa adicionar uma nova entrada aqui ok é importante que sempre né ele também confessou a tomada do endereço seqüencial o que para a seleção e usa alguns bits neto chama the beats de prefixo ontem no caso para tomar essa direção ok com a idéia básica aqui sem nenhuma ocorrência for encontrada o próximo endereço seqüência usado para leitura ser uma ocorrência foi encontrada uma previsão é feita com base no estado da
instrução necessitamos ela foi encontrado já estiver na tabela a instrução de desvios e desvios e custado o estado de exceção é atualizado ou seja será que por exemplo se não foi senão foi tomada tendo atualiza na próxima segunda que seja tomado então ele atualiza uma instrução de desvio condicional não encontrada adicionada tabela é que nem comentei aqui está basicamente tem que ter um algoritmo como essa memória de tamanho limitado pequena lembrança da memória cache corrente foi de memórias você tem que ter um processo de substituição por exemplo você pode ter como critério aquela que menos
utilizado você tira da tabela nessa tabela está o desmatamento e substitui uma nova uma nova instrução bom casa de controle né a gente pode ter aquilo que chama de desvio atrasado com a ideia que o rearranjo automático decisões dentro de um programa só que aqui reajam sé arranjo automático algo interessante instruções ocorrem depois que realmente é desejado aumenta a eficiência do plano que faz uso de desvio que não toma efeito até que não é tão perfeito até depois da execução da instrução seguinte ou seja é interessante você tem aqui efetivamente um desvio à só que
ele só vai ser tomada após na a instrução seguinte essa expressão seguinte a gente chama ela de delay slot então vamos pegar um quadro para facilitar o entendimento mas num trecho de código tá até o desvio normal perceba que tem uma instrução já se o sítio foi tomada o que acontece eu vou ter que fazer o papel on line por exemplo a expansão ardeo o o desvio atrasado o que acontece e 11 uma uma situação nova que não faz nenhum tipo de atividade ok simplesmente daqui é uma bolha e eu posso ter exatamente neodiva atrasado
otimizado quando eu inverto nessas duas instruções tá detalhe importante não preciso incluir na europe o que não precisava no caso da introdução esvaziar o pipeline tá eu não preciso do norte nesse caso do desvio otimizado para a gente chegar internamente imagine o seguinte você tem um tradicional no caso quando ocorre a profissão de anp o que eu tenho que fazer a exposição já a adi sendo executado pela de forma seqüencial exatamente no próximo estágio é que a busca o que ela tem que ser ela tem que ser esvaziada para incluir quem a instrução de história
para 105 aqui no caso no caso da inclusão do nome que acontece né 15 instrução nó no caso do desvio aqui me define como dizia atrasado o que acontece à instrução nokia começa a ser executado sem efeito nenhum então quando eu for fazer a busca aqui 23 ante 6 ac execução é feito não aceita nenhum tipo então não preciso fazer o vazamento do pipeline ea outra otimizado olha só que interessante né como ela é ela vem ou foi modificada sequência jean que vem antes do adi otan que eu tenho aqui basicamente né eu tenho jamp
carregado no estágio nesse estágio num tempo dois aqui efetivamente né quando eu tenho a instrução a dia é carregada o jã né e ainda não teve a sua execução então eu consigo ler a a instrução sem ter no já ter tocado o pc1 esse ganho que acontece eu consiga executar a instrução arte está junto com a instrução de história seja executa exposição de arte e passa a busca da instrução store isso é um ganho porque não não o esvaziamento do pai de elaine e um ganho adicional através do desvio atrasado bom essa aula foi baseada
no capítulo 12.4 e no 13.5 voltei especificamente para desvio atrasado a próxima aula nós vamos abordar cache memória virtual apresentação de conceitos memória cache memória virtual tem muito obrigado [Música] o [Música] [Música] [Música] [Música]