• Nenhum resultado encontrado

Para minimizar os atrasos decorrentes da transformação do circuito combinacional em um pipeline virtualizado, foi desenvolvida uma nova técnica derivada da de pipeline de estágio reconfigurável de 2 estágios (item 4.2.2). Entretanto, essa abordagem traz consigo algumas modificações na estrutura e no controle.

Nos pipelines de 1 e 2 estágios reconfiguráveis apresentados, o tempo de ciclo é igual ao atraso de um nível, pois a cada estágio existe uma barreira temporal. A barreira temporal exige que a computação esteja completa no fim do ciclo para que os dados possam ser armazenados e posteriormente serem repassados para o estágio seguinte.

Diferentemente do pipeline

matriz original incrementa somente um atraso DT, como observado nos experimentos. No circuito combinacional, parte dos dados são transmitidos para o estágio seguinte, mesmo sem ter-se concluído o processamento do nível atual. Um exemplo desse comportamento foi apresentado na Figura 4.10, em que os bits menos significativos do circuito somador ficam disponíveis muito antes dos bits mais significativos.

O objetivo dessa nova abordagem é const

a característica combinacional, obtendo vantagem em área ocupada e minimizando tempo de ciclo, a fim de atingir um atraso semelhante ao circuito combinacional.

Nessa nova técnica o tempo do ciclo é igual à difere

um estágio (DT). Na cascata formada por ULAs, o atraso foi de 4,42 ns (Tabela 4.2); contudo, ao utilizarmos esse mesmo exemplo juntamente com o

tempo de ciclo é igual a 3,16 ns, aproximadamente 25% menor.

desempenho, provocada pela diferença do tempo de ciclo, depende diretamente da diferença entre o tempo de processamento de uma unidade e o DT, como será analisado a seguir.

Para obter-se um comportamento combinacional, um multiplexador 2x1 e registrador foram inseridos em cada saída das linhas de contexto, conforme a Figura 4.11 (a). Essa modificação permite que o sinal de saída de cada estágio possa ter origem nas unidades funcionais (de forma combinacio

registrador (Figura 4.11(c).

Figura 4.11: Modificação da estrutura do estágio para que o sinal de saída possa ter origem combinacional (b) ou registrada (c).

Para ilustrar o processo da dinâmica do circui

execução em que a virtualização dos níveis ainda não foi realizada. O modelo é composto de seis estágios, quais estão representados na Figura 4.12. Os atrasos são baseados nos valores da Tabela 4.3, os quais foram obtidos do

ULAs. Assim, como no circuito combinacional, o primeiro estágio tem atraso de um nível e os demais estágios têm atraso igual à DT, que são respectivamente, 5,78 ns e 5,16 ns. O atraso decorrente do multiplexador 2x1 foi desprezado

pequeno impacto no desempenho. O fluxo dos sinais para esse exemplo será apresentado na sequência de Figuras 4.13 e 4.14.

Inicialmente, a matriz de unidades é configurada e os dados iniciais são disponibilizados na entrada (como apresentado na Figura 4.13 (a)).

A Figura 4.13 (b) mostra o início da execução do Nível 0 no primeiro intervalo de tempo. Durante o intervalo, antes

processado e é transmitido adiante,

multiplexador desse nível deve estar com a entrada combinacional selecionada.

pipeline de estágio reconfigurável, a adição de novos níveis à matriz original incrementa somente um atraso DT, como observado nos experimentos. No circuito combinacional, parte dos dados são transmitidos para o estágio seguinte, luído o processamento do nível atual. Um exemplo desse comportamento foi apresentado na Figura 4.10, em que os bits menos significativos do circuito somador ficam disponíveis muito antes dos bits mais significativos.

O objetivo dessa nova abordagem é construir os estágios de tal forma que mantenha a característica combinacional, obtendo vantagem em área ocupada e minimizando tempo de ciclo, a fim de atingir um atraso semelhante ao circuito combinacional.

Nessa nova técnica o tempo do ciclo é igual à diferença de tempo ao adicionar mais um estágio (DT). Na cascata formada por ULAs, o atraso foi de 4,42 ns (Tabela 4.2); contudo, ao utilizarmos esse mesmo exemplo juntamente com o pipeline

tempo de ciclo é igual a 3,16 ns, aproximadamente 25% menor.

desempenho, provocada pela diferença do tempo de ciclo, depende diretamente da diferença entre o tempo de processamento de uma unidade e o DT, como será analisado

se um comportamento combinacional, um multiplexador 2x1 e registrador foram inseridos em cada saída das linhas de contexto, conforme a Figura 4.11 (a). Essa modificação permite que o sinal de saída de cada estágio possa ter origem nas unidades funcionais (de forma combinacional, como na Figura 4.11 (b)),

registrador (Figura 4.11(c).

: Modificação da estrutura do estágio para que o sinal de saída possa ter origem combinacional (b) ou registrada (c).

Para ilustrar o processo da dinâmica do circuito, é apresentado um exemplo de execução em que a virtualização dos níveis ainda não foi realizada. O modelo é composto de seis estágios, quais estão representados na Figura 4.12. Os atrasos são baseados nos valores da Tabela 4.3, os quais foram obtidos do experimento da matriz de ULAs. Assim, como no circuito combinacional, o primeiro estágio tem atraso de um nível e os demais estágios têm atraso igual à DT, que são respectivamente, 5,78 ns e 5,16 ns. O atraso decorrente do multiplexador 2x1 foi desprezado

pequeno impacto no desempenho. O fluxo dos sinais para esse exemplo será apresentado na sequência de Figuras 4.13 e 4.14.

Inicialmente, a matriz de unidades é configurada e os dados iniciais são disponibilizados na entrada (como apresentado na Figura 4.13 (a)).

A Figura 4.13 (b) mostra o início da execução do Nível 0 no primeiro intervalo de tempo. Durante o intervalo, antes da execução do Nível 0 completar, parte do sinal já foi processado e é transmitido adiante, estimulando a entrada do nível seguinte. Para isso, o multiplexador desse nível deve estar com a entrada combinacional selecionada.

de estágio reconfigurável, a adição de novos níveis à matriz original incrementa somente um atraso DT, como observado nos experimentos. No circuito combinacional, parte dos dados são transmitidos para o estágio seguinte, luído o processamento do nível atual. Um exemplo desse comportamento foi apresentado na Figura 4.10, em que os bits menos significativos do circuito somador ficam disponíveis muito antes dos bits mais significativos.

ruir os estágios de tal forma que mantenha a característica combinacional, obtendo vantagem em área ocupada e minimizando tempo de ciclo, a fim de atingir um atraso semelhante ao circuito combinacional.

nça de tempo ao adicionar mais um estágio (DT). Na cascata formada por ULAs, o atraso foi de 4,42 ns (Tabela 4.2); pipeline virtual, o tempo de ciclo é igual a 3,16 ns, aproximadamente 25% menor. A diferença de desempenho, provocada pela diferença do tempo de ciclo, depende diretamente da diferença entre o tempo de processamento de uma unidade e o DT, como será analisado se um comportamento combinacional, um multiplexador 2x1 e um registrador foram inseridos em cada saída das linhas de contexto, conforme a Figura 4.11 (a). Essa modificação permite que o sinal de saída de cada estágio possa ter origem nal, como na Figura 4.11 (b)), ou no

: Modificação da estrutura do estágio para que o sinal de saída possa ter to, é apresentado um exemplo de execução em que a virtualização dos níveis ainda não foi realizada. O modelo é composto de seis estágios, quais estão representados na Figura 4.12. Os atrasos são experimento da matriz de ULAs. Assim, como no circuito combinacional, o primeiro estágio tem atraso de um nível e os demais estágios têm atraso igual à DT, que são respectivamente, 5,78 ns e 5,16 ns. O atraso decorrente do multiplexador 2x1 foi desprezado devido ao seu pequeno impacto no desempenho. O fluxo dos sinais para esse exemplo será Inicialmente, a matriz de unidades é configurada e os dados iniciais são A Figura 4.13 (b) mostra o início da execução do Nível 0 no primeiro intervalo de da execução do Nível 0 completar, parte do sinal já foi estimulando a entrada do nível seguinte. Para isso, o multiplexador desse nível deve estar com a entrada combinacional selecionada.

No intervalo seguinte (Figura

enquanto o Nível 1 está execução. Novamente os dados parciais do nível que está em execução são transmitidos para o nível seguinte. É nesse intervalo que o registrador do Nível 0 armazena os dados resultant

armazenamento ocorre paralelamente à transmissão dos dados, pois o multiplexador permanece com a entrada combinacional selecionada.

Na execução do Nível 2, durante o terceiro intervalo de tempo, os dados parciais do nível são transmitidos para o nível seguinte e o registrador do Nível 1 armazena os dados processados no intervalo anterior, como pode ser observado na Figura 4.13 (d). Nesse momento observa-se a troca da seleção da entrada do multiplexador do Nível 0. Como o registrador está responsável por manter o sinal para o nível seguinte, as unidades do Nível 0 podem ser desativadas.

Figura 4.12 No quarto intervalo observa

o sinal estável, o registrador do Nível 2 armazena o sinal processado e o Nível 3 está processando. Ainda conforme a Figura 4.14 (a), os dados parciais são transmitidos para o Nível 4 e o Nível 1 não é mais

As Figuras 4.14 (b) e (c) correspondem ao quinto e sexto intervalo. Nestas figuras é possível observar o mesmo comportamento, o que possibilita que os níveis 2 e 3 sejam desativados. Na Figura 4.14 (

obtido das linhas de contexto.

No intervalo seguinte (Figura 4.13 (c)), o Nível 0 já realizou o processamento, enquanto o Nível 1 está execução. Novamente os dados parciais do nível que está em execução são transmitidos para o nível seguinte. É nesse intervalo que o registrador do Nível 0 armazena os dados resultantes da execução do primeiro nível. O armazenamento ocorre paralelamente à transmissão dos dados, pois o multiplexador permanece com a entrada combinacional selecionada.

Na execução do Nível 2, durante o terceiro intervalo de tempo, os dados parciais do el são transmitidos para o nível seguinte e o registrador do Nível 1 armazena os dados processados no intervalo anterior, como pode ser observado na Figura 4.13 (d). se a troca da seleção da entrada do multiplexador do Nível 0. registrador está responsável por manter o sinal para o nível seguinte, as unidades do Nível 0 podem ser desativadas.

12: Matriz não virtualizada composta de ULAs.

No quarto intervalo observa-se a mesma dinâmica: o registrador do Nível 1 mantém o sinal estável, o registrador do Nível 2 armazena o sinal processado e o Nível 3 está processando. Ainda conforme a Figura 4.14 (a), os dados parciais são transmitidos para o Nível 4 e o Nível 1 não é mais necessário estar ativo, podendo, assim, ser desativado.

As Figuras 4.14 (b) e (c) correspondem ao quinto e sexto intervalo. Nestas figuras é possível observar o mesmo comportamento, o que possibilita que os níveis 2 e 3 sejam desativados. Na Figura 4.14 (d) a execução está completa e o sinal resultante pode ser obtido das linhas de contexto.

4.13 (c)), o Nível 0 já realizou o processamento, enquanto o Nível 1 está execução. Novamente os dados parciais do nível que está em execução são transmitidos para o nível seguinte. É nesse intervalo que o registrador do es da execução do primeiro nível. O armazenamento ocorre paralelamente à transmissão dos dados, pois o multiplexador Na execução do Nível 2, durante o terceiro intervalo de tempo, os dados parciais do el são transmitidos para o nível seguinte e o registrador do Nível 1 armazena os dados processados no intervalo anterior, como pode ser observado na Figura 4.13 (d). se a troca da seleção da entrada do multiplexador do Nível 0. registrador está responsável por manter o sinal para o nível seguinte, as

: Matriz não virtualizada composta de ULAs.

a mesma dinâmica: o registrador do Nível 1 mantém o sinal estável, o registrador do Nível 2 armazena o sinal processado e o Nível 3 está processando. Ainda conforme a Figura 4.14 (a), os dados parciais são transmitidos para necessário estar ativo, podendo, assim, ser desativado. As Figuras 4.14 (b) e (c) correspondem ao quinto e sexto intervalo. Nestas figuras é possível observar o mesmo comportamento, o que possibilita que os níveis 2 e 3 sejam d) a execução está completa e o sinal resultante pode ser

(a)

(c)

Figura 4.13: Execução de uma configuração de 6 níveis não virtualizada(parte inicial). (b)

(d)

Execução de uma configuração de 6 níveis não virtualizada(parte inicial). Execução de uma configuração de 6 níveis não virtualizada(parte inicial).

(a)

(c)

Figura 4.14: Execução de uma configuração de 6 níveis não virtualizada(parte final). (b)

(d)

: Execução de uma configuração de 6 níveis não virtualizada(parte final). : Execução de uma configuração de 6 níveis não virtualizada(parte final).

Entendido o funcionamento, pode

do pipeline de estágios reconfiguráveis, agora, porém, sem a desvantagem da barreira temporal impedindo o avanço do sinal. Esse modelo foi denominado

para exemplificar a técnica continuaremos utilizando o exemplo da matriz formada por ULAs.

Para que o funcionamento ocorra corretamente, é necessário que o circuito tenha um caminho combinacional que seja igual ou maior que o tempo de processamento de um nível. Isso garante que um nível não seja reutilizado antes que a execução termine e registre o resultado. O número de estágios necessários pode ser expresso como:

Nest =

[

Test / DT

]

em que: Nest = Número de estágios necessários Test = Tempo de execução de um

DT = Diferença de tempo quando adicionado de um novo

Nesse exemplo o tempo de processamento tem atraso de 5,78 ns, enquanto DT é de 5,16 ns. Desse modo, dois níveis ativos são suficientes, pois o caminho combinacional é maior que o tempo de um nível combinacional (Figura 4.15).

Figura 4.15

A virtualização do circuito pode ser encontrada na Figura 4.16. Para o exemplo adotado a virtualização necessita de 3 estágios. Como verificado anteriormente, são necessários que 2 estágios estejam ativos para que o caminho combinacional seja suficiente. Além disso, o terceiro nível é necessário, pois a reconfiguração é realizada em paralelo à execução, como apresentado na virtualização de estágios reconfiguráveis de 2 níveis.

O atraso de cada estágio é igual ao DT; já a virtualização de dois estágios é igual ao tempo de processamento de um nível. Como o DT determina o

Entendido o funcionamento, pode-se aplicar a virtualização de hardware

de estágios reconfiguráveis, agora, porém, sem a desvantagem da barreira temporal impedindo o avanço do sinal. Esse modelo foi denominado pipeline

para exemplificar a técnica continuaremos utilizando o exemplo da matriz formada por e o funcionamento ocorra corretamente, é necessário que o circuito tenha um caminho combinacional que seja igual ou maior que o tempo de processamento de um nível. Isso garante que um nível não seja reutilizado antes que a execução termine e

O número de estágios necessários pode ser expresso como:

Número de estágios necessários = Tempo de execução de um estágio

= Diferença de tempo quando adicionado de um novo nível

Nesse exemplo o tempo de processamento tem atraso de 5,78 ns, enquanto DT é de 5,16 ns. Desse modo, dois níveis ativos são suficientes, pois o caminho combinacional é maior que o tempo de um nível combinacional (Figura 4.15).

15: Caminho combinacional entre os estágios.

A virtualização do circuito pode ser encontrada na Figura 4.16. Para o exemplo adotado a virtualização necessita de 3 estágios. Como verificado anteriormente, são estágios estejam ativos para que o caminho combinacional seja suficiente. Além disso, o terceiro nível é necessário, pois a reconfiguração é realizada execução, como apresentado na virtualização de estágios reconfiguráveis aso de cada estágio é igual ao DT; já a virtualização de dois estágios é igual ao tempo de processamento de um nível. Como o DT determina o tempo de ciclo

hardware por meio de estágios reconfiguráveis, agora, porém, sem a desvantagem da barreira pipeline virtual - para exemplificar a técnica continuaremos utilizando o exemplo da matriz formada por e o funcionamento ocorra corretamente, é necessário que o circuito tenha um caminho combinacional que seja igual ou maior que o tempo de processamento de um nível. Isso garante que um nível não seja reutilizado antes que a execução termine e

O número de estágios necessários pode ser expresso como: (Eq. 9)

nível

Nesse exemplo o tempo de processamento tem atraso de 5,78 ns, enquanto DT é de 5,16 ns. Desse modo, dois níveis ativos são suficientes, pois o caminho combinacional é

A virtualização do circuito pode ser encontrada na Figura 4.16. Para o exemplo adotado a virtualização necessita de 3 estágios. Como verificado anteriormente, são estágios estejam ativos para que o caminho combinacional seja suficiente. Além disso, o terceiro nível é necessário, pois a reconfiguração é realizada execução, como apresentado na virtualização de estágios reconfiguráveis aso de cada estágio é igual ao DT; já a virtualização de dois estágios é igual ao tempo de ciclo do

circuito, a técnica de pipeline virtual virtualização de estágios reconfiguráveis.

Figura 4.16

A mesma execução demonstrada nas Figuras 4.13 e 4.14 será demonstrada nas Figuras 4.17 e 4.18, contudo, de forma vi

Inicialmente é configurado o primeiro estágio (Figura 4.17 (a)); no próximo ciclo, o segundo estágio é configurado ao mesmo tempo que o primeiro estágio está em execução - Figura 4.17 (b). Nota

combinacional selecionada durante esse momento.

No terceiro ciclo, o primeiro estágio conclui a execução e o resultado é armazenado no registrador do primeiro estágio; o terceiro estágio é configurado enquanto o segundo está em execução, como ilustrado na

No quarto ciclo, o primeiro estágio é reconfigurado, mapeando a configuração do quarto nível virtual nesse estágio. Como o resultado processado anteriormente está registrado, pode-se reconfigurar o nível sem problemas. A saída do multiple

primeiro estágio tem como entrada o registrador

armazenado o resultado da execução do segundo estágio e o terceiro estágio permanece em execução.

No próximo ciclo, conforme a Figura 4.18 (a), o segundo estági

mapeando a configuração do quinto nível virtual. A saída do multiplexador deste estágio tem como entrada ativa o registrador, enquanto o multiplexador do estágio anterior (Estágio 0) volta a ter a entrada combinacional como saída. Ainda n

pipeline virtual tende a ter maior desempenho em comparação à de estágios reconfiguráveis.

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

A mesma execução demonstrada nas Figuras 4.13 e 4.14 será demonstrada nas Figuras 4.17 e 4.18, contudo, de forma virtualizada.

Inicialmente é configurado o primeiro estágio (Figura 4.17 (a)); no próximo ciclo, o segundo estágio é configurado ao mesmo tempo que o primeiro estágio está em Figura 4.17 (b). Nota-se que multiplexadores de saída estão com a saída combinacional selecionada durante esse momento.

No terceiro ciclo, o primeiro estágio conclui a execução e o resultado é armazenado no registrador do primeiro estágio; o terceiro estágio é configurado enquanto o segundo está em execução, como ilustrado na Figura 4.17 (c).

No quarto ciclo, o primeiro estágio é reconfigurado, mapeando a configuração do quarto nível virtual nesse estágio. Como o resultado processado anteriormente está

se reconfigurar o nível sem problemas. A saída do multiple

primeiro estágio tem como entrada o registrador - Figura 4.17 (d). Nesse mesmo ciclo é armazenado o resultado da execução do segundo estágio e o terceiro estágio permanece No próximo ciclo, conforme a Figura 4.18 (a), o segundo estágio é reconfigurado mapeando a configuração do quinto nível virtual. A saída do multiplexador deste estágio tem como entrada ativa o registrador, enquanto o multiplexador do estágio anterior (Estágio 0) volta a ter a entrada combinacional como saída. Ainda n

tende a ter maior desempenho em comparação à

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

A mesma execução demonstrada nas Figuras 4.13 e 4.14 será demonstrada nas Inicialmente é configurado o primeiro estágio (Figura 4.17 (a)); no próximo ciclo, o segundo estágio é configurado ao mesmo tempo que o primeiro estágio está em se que multiplexadores de saída estão com a saída No terceiro ciclo, o primeiro estágio conclui a execução e o resultado é armazenado no registrador do primeiro estágio; o terceiro estágio é configurado enquanto o segundo No quarto ciclo, o primeiro estágio é reconfigurado, mapeando a configuração do quarto nível virtual nesse estágio. Como o resultado processado anteriormente está se reconfigurar o nível sem problemas. A saída do multiplexador do Figura 4.17 (d). Nesse mesmo ciclo é armazenado o resultado da execução do segundo estágio e o terceiro estágio permanece o é reconfigurado mapeando a configuração do quinto nível virtual. A saída do multiplexador deste estágio tem como entrada ativa o registrador, enquanto o multiplexador do estágio anterior (Estágio 0) volta a ter a entrada combinacional como saída. Ainda no mesmo

ciclo, é armazenado o resultado da execução do terceiro estágio, e o primeiro estágio, que foi reconfigurado no ciclo anterior, permanece em execução.

Nos próximos ciclos a mesma sequência de ações pode ser observada

(b) e (c). No oitavo e último ciclo, o resultado da execução está disponível (Figura 4.18 (d)).

(a)

(c)

Figura 4.17: Execução de uma configuração de 6 níveis virtualizada em 3 estágios(parte ciclo, é armazenado o resultado da execução do terceiro estágio, e o primeiro estágio, que foi reconfigurado no ciclo anterior, permanece em execução.

Nos próximos ciclos a mesma sequência de ações pode ser observada

itavo e último ciclo, o resultado da execução está disponível (Figura 4.18

(b)

(d)

: Execução de uma configuração de 6 níveis virtualizada em 3 estágios(parte inicial).

ciclo, é armazenado o resultado da execução do terceiro estágio, e o primeiro estágio, Nos próximos ciclos a mesma sequência de ações pode ser observada- Figuras 4.18 itavo e último ciclo, o resultado da execução está disponível (Figura 4.18

(a)

(c)

Figura 4.18: Execução de uma configuração de 6 níveis virtualizada em 3 estágios(parte (b)

(d)

Execução de uma configuração de 6 níveis virtualizada em 3 estágios(parte final).

Na Figura 4.19 é possível visualizar o mapeamento dos níveis virtuais nos físicos do exemplo apresentado nas Figuras 4.17 e 4.18. Observa

níveis estão configurados e ativos, enquanto um terceiro é configurado.

Figura 4.19: Mapeamento dos níveis virtuais Para o exemplo apresentado de