Vous êtes sur la page 1sur 20

Universidade Federal do Rio de Janeiro Ps-Graduao em Informtica

Microarquiteturas Avanadas

Arquiteturas Superescalares
Gabriel P. Silva

Arquiteturas Pipelined com Desempenho Superior ao de uma Instruo por Ciclo


ARQUITETURAS SUPERPIPELINED Diviso de cada estgio do pipeline em sub-estgios com o uso de freqncias mais altas. ARQUITETURAS SUPERESCALARES Execuo de mltiplas instrues, escalonadas por hardware e/ou software, concorrentemente.
ARQUITETURAS VLIW (Very Long Instruction Word)

Execuo de mltiplas operaes, escalonadas por software, concorrentemente.

ARQUITETURAS MISTAS
Combinaes dos modelos acima

Arquiteturas Superescalares
Organizadas internamente como mltiplos pipelines e com banco de registradores com mltiplas portas de leitura e de escrita, com mltiplas instrues iniciadas a cada ciclo. O grau de concorrncia de instrues situa-se na prtica entre 2 e4 As instrues so despachadas para execuo somente quando no violam regras de dependncia de dados ou de controle e quando no existem conflitos estruturais. O escalonamento das instrues pode ser feito por software ou por hardware. O cdigo objeto para estas arquiteturas compatvel com o de arquiteturas escalares convencionais. Processamento das instrues pode seguir trs possveis modelos: despacho em-ordem + trmino em-ordem despacho em-ordem + trmino fora-de-ordem despacho fora-de-ordem + trmino fora-de-ordem

Arquiteturas Superescalares
Capacidade para realizar busca e decodificao de mltiplas instrues por ciclo; Existncia de uma Janela de Instrues que isola os estgios de busca e decodificao dos estgios de execuo propriamente dita da instruo modelo de despacho forade-ordem: Janela Centralizada Estaes de Reserva (Algoritmo de Tomasulo) Esquemas eficientes de predio dinmica de desvios; Recuperao do estado da mquina em caso de excees ou de previses erradas de desvios Reoder Buffer; Remoo de dependncias de dados Scoreboarding ou Renomeao Dinmica (Reorder Buffer); Lgica para despacho concorrente de instrues armazenadas na Janela de Instrues;

Arquiteturas Superescalares
Mltiplos barramentos para comunicao de operandos e resultados e Banco de Registradores com mltiplas portas de leitura e de escrita, incluindo a existncia de lgica de arbitrao se o nmero de recursos menor que o mximo possivelmente necessrio; Mltiplas unidades funcionais: ALU, Ponto Flutuante, Desvio, Load/Store; Suporte para tratamento de dependncia de dados entre instrues de load e store; A figura a seguir mostra um diagrama de blocos de um estrutura tpica de uma arquitetura superescalar.

MIPS R10000

Busca e Decodificao
A arquitetura superescalar s efetiva se a taxa mdia com que as instrues so buscadas e decodificadas for superior taxa mdia com que instrues so executadas. Esquema eficiente de predio de desvios fundamental. Necessidade de se dispor de um barramento largo de acesso ao cache de instrues e de um decodificador de instrues capaz de decodificar mltiplas instrues simultaneamente: Decodificador para 4 instrues produz um desempenho 20-25% superior que um decodificador para apenas 2 instrues. Um decodificador de mltiplas instrues demanda a realizao da busca de vrios operandos em paralelo o Banco de Registradores e/ou o conjunto de registradores rascunho, utilizado para recuperao do estado em ordem da arquitetura (Buffer de Reordenao, Buffer de Histria, etc.), com mltiplas portas de leitura.

Degradao do Desempenho da Operao de Busca de Instrues


Falha no acesso ao cache de instrues: Bem mais do que um ciclo gasto para a busca do prximo conjunto de instrues. Predio errada de desvios: As instrues buscadas antecipadamente mostram-se inteis e novas instrues tero que ser buscadas. Alternativa possvel: busca simultnea de instrues de dois ou mais caminhos possveis do cdigo a cada desvio condicional aumento no custo de hardware (cache de instrues com mltiplas portas de acesso) Desalinhamento do endereo das instrues alvo de um desvio em relao ao incio de um bloco de cache: Menos instrues teis so efetivamente buscadas slots de decodificao podem ficar subtilizados se a unidade de busca no for capaz de realinhar as instrues antes de pass-las unidade de decodificao.

Trace Cache
Esquema proposto por Rotenberg, Bennet e Smith (University of Wisconsin) para aumentar a eficincia das operaes de busca de instrues. Utiliza uma memria cache adicional para armazenar os traces das instrues mais recentemente executadas, que consultada pela unidade de busca de instrues. Em situaes de loop, o Trace Cache tende a ter uma alta taxa de acerto. Trabalhos bastante recentes tem proposto o uso de Trace Caches para implementar mquinas VLIW com cdigo compatvel com mquinas no VLIW: Estas arquiteturas, denominadas arquiteturas VLIW com trace scheduling dinmico, implementam 2 mquinas: uma mquina RISC convencional baseada em um pipeline simples e uma mquina VLIW. A mquina VLIW s entra em operao quando o cdigo de um trace, armazenado no Trace Cache, executado pela segunda vez. A compactao de cdigo gerada por hardware a partir do cdigo armazenado no Trace Cache.

Janela de Instrues
A Janela de Instrues armazena o resultado da decodificao das instrues e isola o estgio de busca e decodificao de instrues dos estgios de execuo propriamente dita das instrues. Pode ser implementada de forma Centralizada (Janela Centralizada ou Central Window) ou distribuda pelas unidades funcionais (Estaes de Reserva ou Reservation Stations). A janela centralizada armazena todas as instrues j decodificadas e ainda no despachadas para execuo, enquanto que cada Estao de Reserva s armazena as instrues destinadas Unidade Funcional associada a ela. A Janela Centralizada pode ser, em geral, dimensionada com uma capacidade menor do que a capacidade total das diversas Estaes de Reserva.

Janela de Instrues
Na implementao com Janela Centralizada mais de uma instruo pode ser despachada por ciclo para as diferentes Unidades Funcionais enquanto que cada Estao de Reserva pode despachar no mximo uma instruo por ciclo para sua Unidade Funcional. A Janela Centralizada deve ser capaz de suportar instrues de diferentes formatos (diferentes tamanhos) enquanto que as Estaes de Reserva podem ser dedicadas apenas ao formato das instrues executadas pela sua Unidade Funcional. A lgica de controle das implementaes baseadas em Janela Centralizada usualmente mais complexa que a das Estaes de Reserva, j que necessrio administrar diferentes tipos de instrues e Unidades Funcionais, disparar simultaneamente mais de uma instruo para as diferentes Unidades Funcionais, implementar o mecanismo de tag de seqencializao , etc.

Janela Centralizada
A Janela Centralizada uma memria com 16 a 32 entradas, inferior ao nmero total de entradas numa implementao alternativa com Estaes de Reserva. O decodificador de mltiplas instrues armazena na Janela Centralizada todas as instrues e operandos. O tamanho da Janela Centralizada, em nmero de entradas, dimensionado para evitar que o decodificador tenha que suspender sua operao por no haver mais espao para armazenar instrues e operandos. As seguintes funes devem ser desempenhadas pela lgica de controle da Janela Centralizada; Identificar as instrues que esto prontas para serem despachadas para execuo (instrues livres de dependncia); Selecionar dentre as instrues prontas as mais antigas para serem despachadas para cada Unidade Funcional; Despachar as instrues selecionadas se a Unidade Funcional correspondente estiver livre; Liberar prontamente as entradas correspondentes s instrues despachadas para uso do decodificador;

Estaes de Reserva
As Estaes de Reserva so implementadas como memrias com poucas entradas (2 a 8) associada a cada Unidade Funcional da arquitetura. O decodificador de mltiplas instrues armazena em cada Estao de Reserva as instrues e operandos relativos quela Unidade Funcional. O tamanho de cada Estao de Reserva em nmero de entradas dimensionado para evitar que o decodificador tenha que suspender sua operao por no haver mais espao para armazenar instrues relativas a uma dada Unidade Funcional. A lgica de controle das Estaes de Reserva pode ser bastante simplificado se, localmente, for adotada a poltica de despacho em ordem, considerando apenas a instruo mais antiga como candidata a ser despachada a Estao de Reserva funciona como sendo uma FIFO A queda de desempenho provocada por esta simplificao , em geral, pequena, na faixa de 1% a 2%.

Estaes de Reserva
As seguintes funes devem ser desempenhadas pela lgica de controle das Estaes de Reserva: Identificar as instrues que esto prontas para serem despachadas para execuo (instrues livres de dependncia); Selecionar dentre as instrues prontas a mais antiga para ser despachada; Despachar a instruo Funcional estiver livre; selecionada se a Unidade

Liberar prontamente a entrada correspondente instruo despachada para uso do decodificador;

Monitorar os tags que transitam nos barramentos de resultados para, quando houver correspondncia, armazenar estes resultados no espao reservado a eles nas estaes de reserva mecanismo de bypass grande nmero de comparadores.

Algoritmo de Tomasulo
O algoritmo de Tomasulo, desenvolvido para o sistema IBM 360/91 em 1967, ainda o mais eficiente para o despacho seqencial de instrues fora-de-ordem. Tambm conhecido como algoritmo associativo, o algoritmo de Tomasulo realiza a difuso dos resultados produzidos pelas unidades funcionais atravs de um barramento global (CDB) que interconecta os componentes do sistema: unidades funcionais, estaes de reserva e banco de registradores. Diversos processadores (PowerPC, Pentium, SPARC64) da atualidade utilizam variaes deste algoritmo para o despacho de mltiplas instrues por ciclo.

Algoritmo de Tomasulo

O Banco de Registradores
Cada entrada no banco de registradores do IBM 360/91 formada por trs campos. O primeiro campo, denominado busy bit, indica se o valor armazenado est atualizado. Caso o valor do registrador esteja desatualizado, o segundo campo, denominado tag, aponta para a estao de reserva contendo a instruo mais recente que vai produzir este valor. Finalmente, o terceiro campo o registrador propriamente dito.

Algoritmo de Tomasulo
A unidade de ponto flutuante do processador constituda por um somador e por uma unidade para multiplicao /diviso. O somador e o multiplicador possuem trs e duas estaes de reserva, respectivamente.

Estaes de Reserva
So buffers colocados entre o estgio de despacho e o de execuo que permitem o despacho de instrues mesmo que os operandos no estejam disponveis. Ao invs de transferir o valor do operando, o algoritmo associativo transfere para a estao de reserva o tag correspondente estao que armazena a instruo que produzir o resultado esperado. Uma vez despachada, a instruo permanece na estao de reserva at que seja concluda. Nesse momento, ela descartada, liberando a estao. A instruo ser iniciada quando seus operandos e a unidade funcional apropriada estiverem disponveis. Graas ao esquema de despacho para a estaes de reserva, instrues no IBM 360/91 podem ser iniciadas, executadas e terminadas fora da ordem original em que aparecem no cdigo objeto.

O Banco de Registradores
Antes de transferir a instruo corrente para a estao de reserva, o algoritmo de Tomasulo examina os busy bits dos registradores fonte. Se estiveram atualizados, o contedo dos registradores transferido para a estao de reserva. Caso contrrio, o campo tag do registrador fonte copiado no campo tag da estao de reserva onde a instruo atual est sendo alocada. Em seguida, o busy bit do registrador destino da instruo corrente modificado, indicando para as instrues subseqentes que o contedo daquele registrador no est atualizado. Finalmente, o algoritmo associativo transfere para o campo tag do registrador a identificao da estao de reserva que recebeu a instruo corrente.

A Difuso de Resultados no CDB


Toda vez que uma unidade funcional conclui uma operao, o resultado difundido, juntamente com o seu tag, atravs de um barramento global, para o banco de registradores e estaes de reserva. O barramento global denominado CDB (Common Data Bus) . A difuso associativa: o resultado da operao transmitido associativamente para os demais componentes, junto com o tag que identifica a estao de reserva que armazena a instruo que produziu o dado. Os componentes do sistema monitoram continuamente o barramento de resultados, verificando se o tag ora transmitido coincide com o campo de tag aguardado. Ocorrendo a coincidncia, o resultado copiado no campo correspondente da estao de reserva ou do banco de registradores. Caso contrrio ignorado. Essa transferncia associativa deu origem ao termo algoritmo de despacho associativo''.

Resoluo das Dependncias de Dados


Quando da ocorrncia de dependncias falsas o algoritmo de Tomasulo despachando a instruo para uma estao, fazendo cpia dos operandos fonte, caso disponveis. Se os recursos (unidade funcional e operandos fonte) estiverem disponveis, a instruo iniciada imediatamente, antes mesmo do trmino de suas sucessoras. As instrues subseqentes so despachadas, mesmo que uma determinada instruo no possa ser despachada. No caso de dependncias verdadeiras, a instruo sucessora despachada para uma estao de reserva, junto com o tag indicando qual das instrues precedentes que j foram despachadas, ir gerar o resultado que ser o operando fonte. Ao simular automaticamente um nmero infinito de registradores virtuais para a renomeao, o algoritmo de Tomasulo torna desnecessrias as atualizaes dos registradores destino de instrues apresentando dependncias falsas.

Gerenciamento das Dependncias de Dados Bit de Scoreboard


Portanto, para que este mtodo se torne operacional preciso que a lgica de controle da Janela de Instrues seja capaz de monitorar os identificadores de registradores que transitam nos barramentos de resultados para armazenar esses resultados no espao destinado a eles nas entradas correspondentes da Janela de Instrues, implementando um mecanismo de bypass. necessrio utilizar-se um grande nmero de comparadores, capazes de realizar em paralelo a comparao do identificador presente nos barramentos de resultados com os identificadores armazenados em cada entrada da Janela de Instrues. O esquema baseado no uso do bit de scoreboard razoavelmente simples, mas limita a explorao de paralelismo entre as instrues na ocorrncia de dependncias de sada, pois bloqueia a ao do decodificador quando este tipo de dependncia detectado entre instrues. O esquema a ser descrito a seguir, baseado na renomeao dinmica dos registradores, evita este problema.

Recuperao do Estado do Processador em Caso de Exceo ou Predio Errada de Desvio


Dada uma seqncia de instrues e considerando-se o modelo de despacho e concluso de instrues fora de ordem, podem ser definidos os seguintes estados do processador: Estado em ordem: Constitudo por todas as atribuies de valores j realizadas pela seqncia em ordem mais longa de instrues j concludas. o estado que precisa ser recuperado quando uma exceo ocorre. Estado futuro ou look-ahead: Constitudo por todas as atribuies j feitas ou pendentes a partir da primeira instruo no completada na seqncia em ordem. Estado arquitetural: Constitudo pelas ltimas atribuies feitas a cada registrador na seqncia em ordem de instrues. o estado que deve ser percebido por uma instruo executada aps a seqncia.

Recuperao do Estado do Processador em Caso de Exceo ou Predio Errada de Desvio

Seqncia em ordem Estado de Instrues em ordem (1) (2) (3) (4) (5) (6) (7) (8) R3 R7 R8 R7 R4 R3 R8 R3 <= <= <= <= <= <= <= <= ... ... ... ... ... ... ... ...

Estado futuro

Estado arquitetural

(1) R3 <= ... (3) R8 <= ... (4) R7 <= ... (5) (6) (7) (8) (4) R7 <= ... (5) R4 <= ... ... (7) R8 <= ... (8) R3 <= ... ... ... ...

R4 R3 R8 R3

<= <= <= <=

Buffer de Reordenao
O problema de recuperao do estado em ordem de um processador surge tanto quando ocorrem excees como tambm quando se detecta uma predio errada de desvio condicional. O Buffer de Reordenao implementado como uma memria fifo associativa, tipicamente com cerca de 32 entradas. Quando uma instruo decodificada, alocada a ela uma entrada no final da fila do Buffer de Reordenao. Quando uma instruo completada, o valor do resultado gerado por ela escrito na posio a ela alocada no Buffer de Reordenao (busca associativa) e no no Banco de Registradores. Quando uma instruo atinge a primeira posio da fila armazenada no Buffer de Reordenao, todas as instrues anteriores a ela na seqncia em ordem necessariamente j completaram.

Buffer de Reordenao
Se esta instruo j tiver sido completada sem gerao de excees, o valor do resultado por ela gerado escrito no Banco de Registradores e a instruo eliminada da fila. Caso contrrio, a instruo permanece na fila at ser completada e o decodificador de instrues permanece funcionando enquanto houver entradas livres no Buffer de Reordenao.

Buffer de Reordenao
O estado em ordem dos registradores do processador dado pelo Banco de Registradores, j que este s alterado como resultado de instrues que completaram em ordem. O estado futuro dado pelo Buffer de Reordenao, que fica armazenando temporariamente todas as alteraes em registradores pendentes ou j realizadas pelas instrues que completaram aps a primeira instruo ainda no completada segundo a seqncia em ordem. O estado arquitetural resulta da combinao do estado em ordem e da atualizao mais recente (mais prxima do final da fila) de cada registrador no Buffer de Reordenao. O Buffer de Reordenao pode ser utilizado para recuperar o estado em ordem tanto quando ocorrem excees como quando ocorrem predies erradas de desvios.

Buffer de Reordenao
O Buffer de Reordenao deve ter uma entrada alocada a toda instruo decodificada. Para as instrues de desvio, o valor do contador de programas da instruo alvo do desvio deve ser armazenado nessa entrada. Para as instrues que modificam registradores, o valor escrito e a identificao do registrador devem ser armazenados. Cada entrada do Buffer de Reordenao deve conter bits de status informando se a instruo foi completada, se ocorreu alguma exceo ou se a instruo correspondente de desvio e que tipo de predio de desvio foi utilizado (desvio tomado ou no tomado). H sempre um valor do contador de programas associado pelo Buffer de Reordenao instruo situada no incio da fila. Esse valor incrementado sempre que uma instruo descartada no incio da fila e alterado sempre que encontrada uma instruo de desvio efetivamente tomado no incio da fila.

Buffer de Reordenao
Para recuperar o estado em ordem quando ocorre uma predio errada de desvio, basta aguardar que a instruo de desvio correspondente atinja primeira posio da fila. Nesse ponto, o Buffer de Reordenao totalmente descartado e o valor do contador de programas restaurado com o valor do contador de programas referente instruo alvo do desvio armazenado nessa entrada se uma predio de desvio no tomado havia sido feita. Em caso contrrio, o contador de programas restaurado pelo simples incremento do valor do contador de programas associado instruo pelo Buffer de Reordenao. Para recuperar o estado em ordem quando ocorre uma exceo basta aguardar que a instruo causadora da exceo atinja primeira posio da fila. Nesse ponto, o contedo do Buffer de Reordenao descartado e o valor do contador de programas aquele associado pelo Buffer de Reordenao instruo situada no incio da fila, causadora da exceo.

Buffer de Reordenao
O esquema descrito suficiente para que o estado em ordem seja recuperado desde que uma instruo de store s seja executada quando todas as instrues anteriores a ela na seqncia em ordem j tenham completado Uma vez que o Buffer de Reordenao incapaz de recuperar o estado em ordem na memria, aps uma operao de escrita realizada por uma instruo de store, eventualmente executada fora da ordem do programa. Tipicamente o Buffer de Reordenao deve ter capacidade para armazenar tantas instrues quanto for o nmero mximo de instrues que possam estar em execuo (especulativa ou no) no processador. Este nmero funo do nmero de posies na janela de instrues, nmero e latncia das unidades funcionais, quantidade de desvios que podem ser executados especulativamente, entre outros fatores.

Buffer de Histrico
Tambm uma estrutura fifo que armazena para cada entrada o valor do contador de programas correspondente instruo decodificada, o registrador destino alterado por ela, o valor do registrador antes da alterao e bits de status indicando a ocorrncia de exceo ou se a instruo uma instruo de desvio com predio errada. uma alternativa ao uso do Buffer de Reodenao para recuperao do estado em-ordem quando da ocorrncia de excees. Com esse esquema, os operandos fonte das instrues so sempre lidos do Banco de Registradores principal. O novo valor do registrador destino produzido pela instruo escrito no banco de registradores principal, mas o valor anterior do registrador continua armazenado no Buffer de Histria. Sempre que a instruo na primeira posio na fila do Buffer de Histria completa ela descartada da fila.

Buffer de Histrico
Quando a instruo que ocupa a primeira posio da fila est marcada como gerando uma ocorrncia de uma exceo, o estado em ordem recuperado, percorrendo-se o Buffer de Histria do final para o incio, copiando-se os valores dos registradores armazenados de volta no banco de registradores principal. Procedimento semelhante pode ser usado para recuperar o estado em ordem em caso de execuo especulativa com erro na predio de um desvio.

Gerenciamento das Dependncias de Dados Bit de Scoreboard


Este mtodo se baseia na associao de um nico bit (bit de scoreboard) com cada registrador para indicar se existe alguma instruo ainda no completada que modifica aquele registrador. O bit de scoreboard associado a cada registrador ativado quando uma instruo que escreve nesse registrador decodificada. O bit desativado novamente quando a operao de escrita no registrador se consuma. Como s h um bit de scoreboard por registrador, apenas uma instruo que modifique aquele registrador pode estar pendente. O decodificador suspende sua operao quando uma instruo que altera um registrador com o bit de scoreboard j ativado detectada elimina as dependncias de sada.

Gerenciamento das Dependncias de Dados Bit de Scoreboard


Quando o decodificador detecta uma instruo, que usa como operando fonte um registrador com o bit de scoreboard ativado, esta instruo armazenada na Janela de Instrues juntamente com os valores conhecidos dos registradores relacionados com os demais operandos e com a identificao do registrador que possui o bit de scoreboard ativado. O armazenamento na Janela de Instrues, no momento da decodificao, dos valores conhecidos dos demais operandos evita anti-dependncias j que essas cpias no so alteradas por instrues subseqentes. Quando uma instruo completada, a identificao do seu registrador destino comparada com as identificaes armazenadas nas diversas entradas da Janela de Instrues. Para todas as instrues em que houve correspondncia, o valor escrito no registrador copiado para a entrada correspondente da Janela de Instrues, fazendo com que as dependncias diretas sejam cumpridas corretamente.

Gerenciamento das Dependncias de Dados


Renomeao de Registradores com Reorder Buffer
O Buffer de Reordenao, com busca associativa e organizado como uma memria fifo, pode fazer automaticamente o trabalho de renomeao dinmica de registradores em arquiteturas superescalares. Quando uma instruo decodificada, o identificador do seu registrador destino associado a uma nova entrada do Buffer de Reordenao (renomeao). Um identificador nico, associado por hardware a esse resultado, armazenado nessa entrada do Buffer de Reordenao. Os operandos fonte de cada instruo so procurados, a pedido da Unidade de Busca e Decodificao de Instrues, no Buffer de Reordenao, de forma associativa, e no Banco de Registradores, por acesso direto. No havendo entrada no Buffer de Reordenao que corresponda identificao do registrador fonte, o valor deste fornecido pelo Banco de Registradores.

Gerenciamento das Dependncias de Dados


Renomeao de Registradores com Reorder Buffer
Havendo uma entrada no Buffer de Reordenao com a identificao do registrador fonte procurado, o valor do registrador obtido do Buffer de Reordenao. Se o valor estiver pendente, o identificador correspondente devolvido para a instruo respeita as dependncias diretas e evita anti-dependncias. Havendo mais de uma entrada no Buffer de Reordenao com a identificao do registrador procurado, a que estiver mais prxima do final da fila usada por ser o valor mais recente a ser atribudo ao registrador so eliminadas as dependncias de sada entre as instrues. Quando um novo resultado produzido por uma instruo, ele substitui o identificador correspondente no Buffer de Reordenao e nas instrues contendo este mesmo identificador na Janela de Instrues.

Gerenciamento das Dependncias de Dados


Renomeao de Registradores com Reorder Buffer
Tambm neste mtodo a lgica de controle da Janela de Instrues deve ser capaz de monitorar os identificadores que transitam nos barramentos de resultados para, quando houver correspondncia, armazenar esses resultados no espao destinado a eles nas entradas correspondentes da Janela de Instrues, implementando um mecanismo de bypass. Mais uma vez, uma implementao eficiente deste mecanismo requer o uso de um grande nmero de comparadores.

Unidade Funcional de Load/Store


Instrues de Store s podem ser executadas depois que todas as instrues anteriores a ela, na ordem definida pelo programa, j completaram preserva o estado em ordem nos diferentes nveis de hierarquia do sistema de memria. As instrues de Load podem ser despachadas para execuo fora de ordem em relao s instrues de Store, desde que elas no possuam dependncia de dados em relao s instrues de Store pendentes. A Unidade Funcional de Load/Store freqentemente implementada com trs componentes bsicos: Estao de Reserva, Unidade de Endereamento e Store Buffer. As instrues na Estao de Reserva so enviadas em ordem para a Unidade de Endereamento, que calcula o endereo efetivo de memria a ser utilizado pelas instrues de Load/Store.

Unidade Funcional de Load/Store


O Store Buffer retm as instrues de Store despachadas com o endereo de memria j calculado e o valor do dado a ser escrito, at que todas as instrues anteriores a ela j tenham sido completadas, ou seja, at que a instruo de Store atinja a primeira posio da fila no Buffer de Reordenao. Para as instrues de Load, verificado se o endereo de memria gerado pela Unidade de Endereamento no est presente no Store Buffer. Caso no esteja, as instrues de Load realizam acesso memria fora de ordem em relao s instrues de Store armazenadas no Store Buffer (Load Bypassing). Se o endereo de memria de uma instruo de Load est presente no Store Buffer, o valor a ser armazenado em memria pela instruo de Store presente no Store Buffer o valor usado pela instruo de Load, que, nesse caso, nem precisa realizar o acesso memria (Load Bypassing + Forwarding).

Vous aimerez peut-être aussi