·
Engenharia de Computação ·
Microprocessadores
Envie sua pergunta para a IA e receba a resposta na hora
Recomendado para você
Texto de pré-visualização
referenciar a memória 34 Pipelining É claro que proibir que as instruções comuns acessem a memória não resolve o problema de como fazer com que LOADs e STOREs operem em um ciclo A solução está em um pouco de truque Vamos agora relaxar nossos objetivos ligeiramente Em vez de requerer que toda instrução deva ser executada em um ciclo vamos meramente instituir que seremos capazes de começar uma instrução a cada ciclo sem levar em consideração quando é que ela termina Se em n ciclos conseguirmos iniciar n instruções na média teremos atingido uma instrução por ciclo o que é suficientemente bom Para atingir este objetivo modificado todas as máquinas RISC têm pipeline A CPU contém diversas unidades independentes que trabalham em paralelo Uma delas busca as instruções e outras as decodificam e executam A qualquer instante diversas instruções estão em vários estágios de processamento Uma instrução comum utiliza duas unidades pipeline uma para busca e outra para execução Num instante de tempo uma instrução é iniciada No outro instante a instrução iniciada muda de unidade e é executada Na unidade que ficou livre é iniciada uma nova instrução Assim mantemos a média que é iniciar uma instrução a cada ciclo Porém instruções LOADs e STOREs requer uma terceira unidade para referenciar a memória Então em vez de finalizar a execução em duas unidades finalizamos em três unidades Na Tab 33 exemplo de uma primeira execução Ciclo 1 2 3 4 5 6 7 8 9 10 Busca de instrução 1 2 L E Execução de instrução 1 2 L 4 4 S Referência à memória L S Tab 33 Uma máquina RISC com pipeline contendo LOAD L e STORE S atrasados 35 Uso de Registrador O objetivo de toda máquina RISC é executar uma instrução por ciclo na média Uma vez que LOAD e STORE tipicamente requerem dois ciclos está média só pode ser atingida se o compilador tiver sucesso no preenchimento de 100 dos buracos de atraso depois de cada um deles Isto leva a raciocinar que quanto menos LOADs e STOREs existirem menos serão desperdiçados devido à inabilidade do compilador em preenchêlos com alguma coisa útil Por esta razão compiladores para máquinas RISC fazem uso intenso de registradores para reduzir o tráfego de memória isto é o número de LOADs e STOREs As máquinas RISC possuem substancialmente mais registradores do que máquinas CISC 36 Por que processadores RISC não declaram Nos anos alguns engenheiros de RISC ridicularizaram o CISC e predisseram o fim da família x86 Infelizmente para eles a penalidade por menosprezar os fabricantes principalmente a Intel é até maior que a penalidade para não prever
Envie sua pergunta para a IA e receba a resposta na hora
Recomendado para você
Texto de pré-visualização
referenciar a memória 34 Pipelining É claro que proibir que as instruções comuns acessem a memória não resolve o problema de como fazer com que LOADs e STOREs operem em um ciclo A solução está em um pouco de truque Vamos agora relaxar nossos objetivos ligeiramente Em vez de requerer que toda instrução deva ser executada em um ciclo vamos meramente instituir que seremos capazes de começar uma instrução a cada ciclo sem levar em consideração quando é que ela termina Se em n ciclos conseguirmos iniciar n instruções na média teremos atingido uma instrução por ciclo o que é suficientemente bom Para atingir este objetivo modificado todas as máquinas RISC têm pipeline A CPU contém diversas unidades independentes que trabalham em paralelo Uma delas busca as instruções e outras as decodificam e executam A qualquer instante diversas instruções estão em vários estágios de processamento Uma instrução comum utiliza duas unidades pipeline uma para busca e outra para execução Num instante de tempo uma instrução é iniciada No outro instante a instrução iniciada muda de unidade e é executada Na unidade que ficou livre é iniciada uma nova instrução Assim mantemos a média que é iniciar uma instrução a cada ciclo Porém instruções LOADs e STOREs requer uma terceira unidade para referenciar a memória Então em vez de finalizar a execução em duas unidades finalizamos em três unidades Na Tab 33 exemplo de uma primeira execução Ciclo 1 2 3 4 5 6 7 8 9 10 Busca de instrução 1 2 L E Execução de instrução 1 2 L 4 4 S Referência à memória L S Tab 33 Uma máquina RISC com pipeline contendo LOAD L e STORE S atrasados 35 Uso de Registrador O objetivo de toda máquina RISC é executar uma instrução por ciclo na média Uma vez que LOAD e STORE tipicamente requerem dois ciclos está média só pode ser atingida se o compilador tiver sucesso no preenchimento de 100 dos buracos de atraso depois de cada um deles Isto leva a raciocinar que quanto menos LOADs e STOREs existirem menos serão desperdiçados devido à inabilidade do compilador em preenchêlos com alguma coisa útil Por esta razão compiladores para máquinas RISC fazem uso intenso de registradores para reduzir o tráfego de memória isto é o número de LOADs e STOREs As máquinas RISC possuem substancialmente mais registradores do que máquinas CISC 36 Por que processadores RISC não declaram Nos anos alguns engenheiros de RISC ridicularizaram o CISC e predisseram o fim da família x86 Infelizmente para eles a penalidade por menosprezar os fabricantes principalmente a Intel é até maior que a penalidade para não prever