domingo, 6 de fevereiro de 2011

Execução dinâmica

A dynamic executioon , ou execução dinâmica das instruções, pelo que vamos ver como isso e feito no Pentium Pro. Este tipo de execução e possível porque o Pentium Pro possui três pipelines e desta forma consegue executar três instruções simultaneamente. As instruções são analisadas quanto a sua interligação, mas não são executadas ordenadamente, isto e, são enviadas para os pipelines as instruções que não dependem umas das outras e so depois e que são executadas as que necessitam dos dados das anteriores.
A unidade de execução executa as instruções baseada na não dependência de execução de outras instruções e não na sua ordem original dentro de um programa. Para isso, baseia-se nas seguintes três técnicas:

·         Multiple branch prediction (revisão de desvios múltiplos) – Prediz a execução do programa através de vários ramos. Através de um algoritmo especial, o processador pode antecipar saltos ou ramificações no fluxo de instruções. Isto e possível porque, enquanto o processador recebe as instruções, ele também esta a verificar as instruções do programa mais para a frente.
·         Data flow analysis (análise de fluxo de dados) – Cria, optimiza e reordena as instruções analisando a dependência entre elas, independentemente da sua ordem quando estão disponíveis para processamento ou, por outro lado, se são dependentes de outras instruções que necessitam de ser executadas primeiro. Assim, o processador determina qual e a sequência óptima para o processamento e executa as instruções de um modo mais eficiente. 

·         Speculative execution  (execução especulativa) – É o resultado do multiple Branch Prediction e do Data Flow Analysis. Executa as instruções de modo especulativo, isto é, as instruções que podem ser executadas sem dependências umas das outras. Utiliza a técnica de Data Flow Analysins para verificar as dependências entre instruções e o algoritmo

Sem comentários:

Enviar um comentário