Você está na página 1de 5

Paralelismo no Nvel de Instrues e Processadores Superescalares

Arthur Pinheiro Cortes, Pedro Ventura de Oliveira 11021EMT001 11021EMT011 Faculdade de Engenharia Mecnica UFU

1 Viso geral
A essncia da abordagem superescalar a habilidade de executar instrues independentemente, em diferentes pipelines. Esse conceito pode ser ainda mais explorado, permitindo que instrues sejam executadas em uma ordem diferente da ordem em que aparecem no programa. Comparando uma arquitetura com superpipeline a uma superescalar, tanto a implementao de uma quanto da outra apresentam o mesmo nmero de instrues sendo executadas ao mesmo tempo, em estado estvel. Porm, o processador com uma superpipeline gasta mais tempo do que o processador superescalar no incio do programa e a cada instruo-alvo de um desvio tomado. A abordagem superescalar depende da habilidade de executar vrias instrues em paralelo. O termo paralelismo no nvel de instrues diz respeito ao nvel no qual as instrues de um programa podem ser executadas em paralelo, em mdia. Esse paralelismo possui algumas limitaes, sendo elas: A dependncia de dados verdadeira diz respeito dependncia dos dados de entrada de uma instruo, com os dados de sada de outra. Ou seja, mesmo com o paralelismo, o processador atrasa a prxima instruo at obter os dados de sada que precisa como entrada; A dependncia de desvios na qual a instruo seguinte a um desvio condicional (tomado ou no) depende dessa instruo de desvio e no pode ser executada at que seja completada a execuo da instruo de desvio; Conflito de recurso, o qual ocorre quando duas ou mais instrues competem, ao mesmo tempo, por um mesmo recurso. Exemplos de recursos incluem memrias, caches, barramentos, portas de bancos de registradores e unidades funcionais (por exemplo, o somador da ULA); Dependencia de sada; Antidependencia.

2 Questes de projeto
2.1 Paralelismo no nvel de instruo e paralelismo de mquina O paralelismo no nvel de instrues existe quando as instrues de uma sequncia so independentes e podem, portanto, ser executadas em paralelo, por sobreposio. O grau de paralelismo no nvel de instrues determinado pela frequncia com que ocorrem no cdigo dependncias de dados verdadeiras, edependncias de desvio. O paralelismo de mquina uma medida da capacidade do processador em aproveitar o paralelismo no nvel de instrues. O paralelismo de mquina determinado pelo nmero de instrues que podem ser buscadas e executadas ao mesmo tempo (nmero de pipelines paralelas) e pela velocidade e eficcia dos mecanismos usados pelo processador para identificar instrues independentes.

Tanto o paralelismo no nvel de instrues como o paralelismo de mquina so fatores importantes para melhoria do desempenho. 2.2 Politica de iniciao de instrues Johnson (1991) usa o termo iniciao de instrues (instruction issue) para referir-seao processo de iniciar a execuo de instrues nas unidades funcionais do processador, e o termo poltica de iniciao de instruo para referir-se ao protocolo usado para iniciar a execuo de instrues. Em termos gerais, as polticas de iniciao de instrues em mquinas superescalares podem ser agrupadas nas seguintes categorias: iniciao em ordem com terminao em ordem, iniciao em ordem com terminao fora de ordem e iniciao fora de ordem com terminao fora de ordem. A primeira muito simples, e serve apenas como comparativo para os outros mtodos, as instrues so executadas na ordem exata da sequncia. A segunda executa o mximo de paralelismo do processador para melhorar o rendimento, resultando em uma pequena economia de ciclos. J a terceira, usa uma rea de armazenamento temporrio para analisar as instrues, e evitar possveis conflitos que ocorrem, por exemplo, na iniciao em ordem com terminao fora de ordem. Quando so permitidas a iniciao de instrues fora de ordem e/ ou a terminao fora de ordem, existe a possibilidade de ocorrncia de dependncias de sada e antidependncias. Isso acontece pela falta de registradores, as instrues passam a disputar os registradores existentes. Nesse contexto usado a renomeao de registradores, que nada mais que uma duplicao de recursos. Nesse caso, normalmente so criadas referencias a registradores reais para no atrapalhar o andamento das instrues. 2.3 Execuo e implementao superescalar Na viso geral da execuo de um superescalar, o processo acontece da seguinte maneira. As instrues a serem executadas so recebidas de forma linear, assim como foram programadas. Assim acontece a busca de instrues pelo processador, que tenta encontrar as dependncias entre elas. Logo depois as instrues so executadas numa ordem que depende das relaes de dependncia, saindo da forma linear de antes. Finalmente, as instrues so recolocadas na ordem sequencial de execuo e seus resultados so registrados. Esse passo final conhecido como confirmao de instruo. um passo importante para evitar perda de informaes porque a ordem em que foram recebidas diferente da esperada no inicio da sequncia.

3 Pentium 4
A operao do processador Pentium 4 pode ser resumida como se segue: 1.O processador busca instrues a partir da memria, na ordem do programa esttico. 2.Cada instruo traduzida em uma ou mais instrues RISC de tamanho fixo, conhecidos como microoperaes, ou micro-ops. 3.O processador executa as micro-ops numa organizao de pipeline superscalar, de modo que as micro-ops podem ser executadas fora de ordem. 4.O processador submete os resultados de execuo de cada micro-op para para o conjunto de registradores do processador na ordem do fluxo original do programa.

A arquitetura do Pentium 4 inclui um front-end ordenado. Este frontend alimenta um cache de instruo L1, chamado cache de rastreamento, que onde a pipeline comea propriamente. Com a ajuda do branch target buffer e do instruction lookaside buffer (BTB & ITLB), a unidade de busca/decodificao obtm instrues de maquina Pentium 4 do cache L2, 64 bytes de cada vez. Como padro, as instrues so lidas em sequncia, de modo que cada linha de busca no cache L2 inclui a prxima instruo a ser buscada. Uma vez que as instrues so buscadas, a unidade de busca / decodificao verifica os bytes para determinar dependncias, esta uma operao necessria por causa do tamanho varivel de instrues x86. O descodificador converte cada instruo de mquina em uma sequncia de 1 a 4 micro-ops, cada uma das quais uma instruo RISC de 118 bits. As micro-ops gerados so armazenadas na memria cache de rastreamento. O Pentium 4 utiliza uma estratgia dinmica de previso de desvios com base no histrico de execues recentes das instrues de desvio. Uma vez que a instruo executada, seu histrico atualizado de modo que reflita o resultado da instruo de desvio. A BTB do Pentium 4 organizada como uma cache associativa por conjuntos de 4 linhas, com um total de 512 linhas. Cada entrada usa o endereo de desvio como uma etiqueta. A entrada tambm inclui o destino do endereo de desvio da ltima vez que este desvio foi tomada e um campo de histria de 4 bits. Desvios condicionais que no tenham histrico na BTB so previstos por meio de um algoritmo de previso esttica, de acordo com as seguintes regras: No caso de desvio em que o endereo-alvo no relativo ao IP, a previso de tomar o desvio, se este for um retorno. Caso contrrio, a previso a de no tomar o desvio. Para desvios condicionais relativos ao IP para trs, ou seja, para endereos anteriores ao da instruo corrente, a previso de que o desvio ser tomado. Essa regra reflete o comportamento tpico de laos de repetio. No caso de desvios condicionais relativos a IP para a frente, ou seja, para instrues posteriores instruo corrente, a previso de que o desvio no ser tomado. O cache de rastreamento leva as j decodificadas micro-ops do decodificador de instrues e monta-os em sequncias ordenados de programa de microops denominadas traces. Micro-ops so extradas sequencialmente a partir do cache de rastreamento, sujeita lgica de previso de desvio. O quinto estgio da pipeline do pentium 4 entrega instrues decodificadas do cache rastreador para o mdulo renomear/alocar. Esta parte do processador reordena as micro-ops de modo a permitir a execuo das entradas to rpido quanto estiverem prontas. O estgio de alocao aloca recursos necessrios para a execuo. As micro-ops entram na ROB em ordem. Em seguida, eles so despachados da ROB, fora de ordem, para a unidade de despacho e execuo. O critrio para despachar umamicro-op que a unidade de execuo adequada esteja disponvel, assim como todos os itens de dados necessrios para a micro-op. Finalmente, as micro-ops so confirmadas a partir da ROB, em ordem. Para que a confirmao seja em ordem, a ROB aguarda que cada micro-opesteja pronta para ser confirmada e ento confirma as microops mais antigas primeiro.

O estgio de renomear remapeia referncias aos 16 registradores de arquitetura em um conjunto de 128 registros fsicos. A etapa remove dependncias falsas causadas por um nmero limitado de registos de arquitetura, e preserva a verdadeira dependncia de dados (l depois Depois de alocar recursos e renomear registros, micro-ops so colocados em escreve).

uma das duas filas de micro-op, onde so mantidos at que haja espao nos ordenadores. Uma das duas filas para as operaes de memria (caregar e armazenar) e outro para as micro-ops que no envolvem as referncias da memria. Os ordenadores so responsveis pela recuperao de micro-ops das filas microop e expedio destes para execuo. At seis micro-ops podem ser despachados em um ciclo.

4 ARM Cortex-A8
O Cortex-A8 foca uma grande variedade de portteis e aplicaes de consumidores incluindo celulares, incluindo telefones celulares, consoles de jogos e navegao automotiva /sistemas de entretenimento. O fluxo de instrues principal atravs de trs unidades funcionais que implementam uma dupla de, em questo de ordem, 13 estgios de pipeline. A unidade de busca de instruo prev o fluxo de instruo, busca instrues do cache L1 de instrues, e coloca as instrues encontradas em um buffer para o consumo do pipeline de decodificao. A unidade de busca de instruo tambm inclui o cache L1 de instrues. Como pode haver vrios desvios pendentes na pipeline, as instrues encontradas so especulativas, ou seja, no h nenhuma garantia de que elas sejam executadas. Um desvio ou instruo excepcional no fluxo de cdigo pode causar um flush na pipeline, descartando as instrues atualmente na unidade de busca. Para minimizar as penalidades de ramo tipicamente associadas com uma mais profunda pipeline, o processador Cortex-A8 implementa um previsor histrico de desvios globais com dois nveis, que consiste no endereo alvo de desvio (BTB branch target buffer) e o buffer de histria global (GHB global history buffer). A unidade de decodificao de instruo decodifica e seqncias todas instrues ARM e Thumb. Ele tem uma estrutura de pipeline dupla, chamada pipe0 e pipe1, de modo que duas instrues podem progredir atravs da unidade de uma vez s. A unidade de execuo de instruo consiste de duas pipelines de unidades lgicas aritmticas simtricas (ALU arithmetic logic unit), um gerador de endereo para carregar e guardar instrues, e para o multiplicador de pipelines. As pipelines em execuo tambm realizam um WB (register write back). Todos SIMD e instrues de ponto flutuante passam atravs da pipeline de integrao e so processados em um pipeline de 10 estgios separados. A unidade, conhecida como a unidade NEON, lida com instrues de SIMD, e fornece dois tipos de suporte a pontos flutuantes. Se implementada, um vetor de ponto flutuante (VFP)

coprocessado, realiza operaes de ponto flutuante em conformidade. Se o coprocessador no estiver presente, ento pipelines de multiplicao e adio implementaram as operaes com pontos flutuantes.

Você também pode gostar