• Nenhum resultado encontrado

4.2 Virtualização de hardware por meio da técnica de pipeline de estágio

4.2.2 Pipeline virtual de 2 estágios

Essa seção descreve o modelo de uma matriz reconfigurável de dois estágios, proposto para contornar o acréscimo do tempo total de execução devido à configuração ser realizada no mesmo ciclo que a execução.

A implementação da matriz reconfigurável de 2 estágios pode ser observada na Figura 4.6. As saídas Nível 0 são conectadas nas entradas do Nível 1 e as saídas dos Nível 1 são conectadas na entrada do Nível 0. Como no modelo anterior, as saídas das linhas de contexto do nível também possuem registradores para armazenar o resultado do processamento do nível, o que resulta em um pipeline cíclico de 2 estágios.

Figura 4.6: Virtualização por meio de 2 estágios físicos.

Nesse modelo com 2 estágios, a execução ocorre paralelamente à reconfiguração: enquanto um estágio está executando, o outro está sendo reconfigurado de acordo com o próximo nível virtual. Todos os níveis

são virtualizados nos dois estágios disponíveis, sendo executado um estágio por ciclo, da mesma forma que ocorre na virtualização de 1 estágio.

A Figura 4.7 ilustra a virtualização de hardware por meio do mapeamento dos níveis virtuais nos níveis físicos em que uma configuração

primeiro ciclo o nível virtual 0 é configurado no estágio 0, já no ciclo seguinte, o nível virtual 1 é mapeado no segundo nível físico ao mesmo tempo que o primeiro estágio é executado.

No terceiro ciclo o nível virtual 2 é con

em que antes fora mapeado o nível virtual 0. Os resultados da execução desse nível já foram armazenados previamente nos registradores, portanto, a reconfiguração do nível não ocasiona problema na passagem do sina

: Virtualização por meio de 2 estágios físicos.

estágios, a execução ocorre paralelamente à reconfiguração: enquanto um estágio está executando, o outro está sendo reconfigurado de acordo com o próximo nível virtual. Todos os níveis a serem executados existentes na configuração is estágios disponíveis, sendo executado um estágio por ciclo, da mesma forma que ocorre na virtualização de 1 estágio.

A Figura 4.7 ilustra a virtualização de hardware por meio do mapeamento dos níveis virtuais nos níveis físicos em que uma configuração de 6 níveis é executada. No primeiro ciclo o nível virtual 0 é configurado no estágio 0, já no ciclo seguinte, o nível virtual 1 é mapeado no segundo nível físico ao mesmo tempo que o primeiro estágio é No terceiro ciclo o nível virtual 2 é configurado no estágio 0, o mesmo nível físico em que antes fora mapeado o nível virtual 0. Os resultados da execução desse nível já foram armazenados previamente nos registradores, portanto, a reconfiguração do nível não ocasiona problema na passagem do sinal para o nível seguinte.

: Virtualização por meio de 2 estágios físicos.

estágios, a execução ocorre paralelamente à reconfiguração: enquanto um estágio está executando, o outro está sendo reconfigurado de acordo com o existentes na configuração is estágios disponíveis, sendo executado um estágio por ciclo, A Figura 4.7 ilustra a virtualização de hardware por meio do mapeamento dos níveis de 6 níveis é executada. No primeiro ciclo o nível virtual 0 é configurado no estágio 0, já no ciclo seguinte, o nível virtual 1 é mapeado no segundo nível físico ao mesmo tempo que o primeiro estágio é figurado no estágio 0, o mesmo nível físico em que antes fora mapeado o nível virtual 0. Os resultados da execução desse nível já foram armazenados previamente nos registradores, portanto, a reconfiguração do nível

Figura 4.7: Mapeamento dos níveis virtuais nos 2 estágios. O mecanismo de controle opera da seguinte forma: quando um nível executado, a saída do nível anterior é regis

configuração no nível n+2

paralelamente no mesmo ciclo. Resumidamente as ações são as seguintes: • Busca da configuração do nível (

• Reconfiguração do nível ( • Execução do nível nRegistro do nível (n

O tempo do período do ciclo e o tempo total de execução podem ser calculados pelas equações abaixo:

Tee2 = Ten + Ts

Tte2 = N x Tee2

em que: Tee2 = Tempo de execução do estágio Ten = Tempo de execução do nível Ts = Tempo de setup do registrador Tte2 = Tempo total de execução

N = Número de níveis de configuração que serão executados : Mapeamento dos níveis virtuais nos 2 estágios. O mecanismo de controle opera da seguinte forma: quando um nível

executado, a saída do nível anterior é registrada, o nível n+1 é reconfigurado e a +2 é obtida da memória de contexto - tais etapas ocorrem paralelamente no mesmo ciclo. Resumidamente as ações são as seguintes:

configuração do nível (n+2); nível (n+1); n;

n-1).

O tempo do período do ciclo e o tempo total de execução podem ser calculados pelas

Tee2 = Tempo de execução do estágio = Tempo de execução do nível Ts = Tempo de setup do registrador

= Tempo total de execução

N = Número de níveis de configuração que serão executados : Mapeamento dos níveis virtuais nos 2 estágios.

O mecanismo de controle opera da seguinte forma: quando um nível n está sendo é reconfigurado e a tais etapas ocorrem paralelamente no mesmo ciclo. Resumidamente as ações são as seguintes:

O tempo do período do ciclo e o tempo total de execução podem ser calculados pelas

(Eq. 3) (Eq. 4)

Nesta abordagem, como na original, o tempo de reconfiguração é menor que o tempo de processamento de 1 estágio, o que justifica a equação do tempo de processamento do nível.

O que diferencia o modelo da arquitetura de 2 estágios para a de 1 estágio é o processo de reconfiguração. No modelo de 2 estágios a reconfiguração do nível ocorre em paralelo à execução, ao passo que, no modelo de 1 estágio, a reconfiguração e execução ocorrem de forma sequencial. Essa diferença implica diretamente no tempo de processamento do estágio, já que o tempo de configuração não faz mais parte da equação. Em contrapartida, o segundo modelo necessita o dobro de área, uma vez que é composto de 2 estágios.

Uma abordagem de virtualização semelhante ocorre na arquitetura reconfigurável chamada PipeRench, como citado no Capítulo 2. Tal arquitetura é composta de 3 estágios (strips), em que cada estágio é configurado em 1 ciclo e executado nos próximos 2 ciclos. Da mesma forma que o PipeRench, os modelos propostos podem ser classificados como execução virtualizada, de acordo com a classificação (PLESSL, 2004) apresentada no Capítulo 2.