• Nenhum resultado encontrado

WireMap – Mapeador Tecnológico para melhoria de roteabilidade e aprimoramento da fusão de LUTs

Estado da Arte

3.1. Algoritmos de Mapeamento Tecnológico

3.1.1. WireMap – Mapeador Tecnológico para melhoria de roteabilidade e aprimoramento da fusão de LUTs

O WireMap (JANG, CHAN, et al., 2009) é uma técnica de mapeamento desenvolvida por pesquisadores da Universidade de Berkeley em parceria com a empresa Xilinx. A técnica propõe a redução no número de conexões pino a pino, o que ocasiona a redução do comprimento do fio, a diminuição da congestão e a melhoria no desempenho nos circuitos pós-roteados. Além disso, a metodologia proposta reduz o número de entradas das LUTs, o que favorece o agrupamento das mesmas em LUTs de duas saídas, encontradas nos FPGAs comerciais.

Com o objetivo de reduzir o número de conexões pino a pino, o WireMap apresenta uma nova heurística denominada edge flow (fluxo de conexão). Esta

heurística é semelhante à medida de fluxo de área apresentada na equação (2-8). Assim como o fluxo de área busca minimizar a quantidade de LUTs do circuito, o fluxo de conexão contribui para a minimização do número de conexões entre estas LUTs.

O Fluxo de conexão (ou EdgeFlow) é definido na equação (3-1). Onde Conexao(n) é o número de entradas do corte representativo do nó n.

(3-1)

O núcleo do WireMap é mostrado na Figura 32. Após determinar todos os possíveis cortes de cada nó utilizando a enumeração de cortes (linha 2), é atribuído a cada nó, o corte que minimiza a profundidade (linha 3). Em seguida, as medidas de fluxo de área e fluxo de conexão são associadas numa etapa de otimização global (linha 4), e, posteriormente, as heurísticas de área e conexão exata local são associadas numa etapa de otimização local (linha 5). Finalmente, o mapeamento final é gerado (linha 6) e a associação de LUTs é realizada (linha 7).

Figura 32. Núcleo do WireMap (JANG, CHAN, et al., 2009)

Para a etapa de otimização global são utilizadas as heurísticas de fluxo de área e fluxo de conexão, que caracterizam extensões úteis das noções de área e número de conexões, respectivamente. O pseudocódigo da etapa de otimização global, denominada, globalAreaedgeRecovery, é mostrado na Figura 33.

Durante esta fase, para cada nó da rede em ordem topológica (linha 3) são selecionados o conjunto de cortes que minimizam o fluxo de área (linha 4). Deste conjunto, é selecionado como corte representativo do nó, aquele que possui menor fluxo de conexão (linhas 5), em seguida, o nível do corte é atualizado (linha 6) e o corte representativo do nó é também atualizado (linha 7).

1: WireMap (aig, K){

2: Enumeração dos cortes(aig, K);

3: Mapeamento tradicional orientado a profundidade(aig, K) 4: Reparação Global de Area e Conexão(aig, K);

5: Reparação Local de Area e Conexão(aig, K); 6: Gera Mapeamento Final (aig, K);

7: Executa Associação de LUT (aig, K); 8: }

A heurística de otimização local utiliza a área exata e conexão local para melhorar as medidas do mapeamento após a etapa global. A área (conexão) exata local de um nó n é uma medida da área (número de conexões) adicionada ao mapeamento se n é escolhido como um nó utilizado no mapeamento. O pseudocódigo desta etapa, denominada LocalAreaEdgeRecovery, é mostrado na Figura 34.

Para cada nó em ordem topológica (linha 2) são selecionados os cortes que minimizam a área local exata (linha 3) e o corte representativo do nó é, dentre estes, aquele com menor conexão local exata (linhas 4).

Para comprovar a eficiência do algoritmo, os autores realizaram experimentos utilizando benchmarks acadêmicos e comparando três abordagens: um mapeador tradicional presente no ABC (BERKELEY UNIVERSITY, 2015), MSC (mapeamento com escolha estrutural) (CHATTERJEE, MISHCHENKO, et al., 2005) e MSC com WireMap. Os resultados mostraram que o uso do MSC com WireMap permitiu a redução no número de conexões pino a pino em 9,3%, na quantidade de LUTs em 1,3% e no tempo de execução em 8,9% comparação ao uso isolado do MSC. Os experimentos apresentados também incluíram medidas pós-posicionamento e roteamento realizado pelo VPR (LUU, KUON, et al., 2009), cujos resultados mostraram uma redução no comprimento total do fio de 8,5% e de 6% na largura do canal.

Figura 33. Otimização da Área e Conexão global retirado de WireMap (JANG, CHAN, et al., 2009)

Figura 34. Otimização da área e conexão locais retirado de WireMap(JANG, CHAN, et al., 2009) 1: globalAreaEdgeRecovery (aig, K){

2: Calcula o Tempo necessário(aig); 3: Para cada nó n em ordem topológica {

4: Cortes = encontra cortes minimizando AF(n); 5: Corte_representativo =

encontra o corte minimizando EF(cortes); 6: Atribui o nível (n, nível corte representativo)

7: Atribui corte representativo(n, Corte_representativo);

8: }

9: }

1: LocalAreaEdgeRecovery (aig, K){

2: Para cada nó n em ordem topológica {

3: Cortes = encontra cortes minimizando Exata Area(n); 4: Corte_representativo =

encontra o corte minimizando EF(cortes);

5: }

Também foram apresentados experimentos utilizando ferramentas comerciais através do uso da Xilinx ISE 9.2i (XILINX, INC, 2015) para posicionamento e roteamento do circuito. Os resultados mostraram que o uso associado do WireMap ao MSC, sem a etapa de associação de LUTs produz um aumento no número de LUTs final em cerca de 1%, ao passo que, o número de conexões pino a pino é reduzido em 6,8% e o comprimento do fio em 3,6%. Quando a etapa de associação de LUTs é utilizada, a redução na quantidade final de LUTs é de 12%.

3.1.2. PwAwMap – Mapeamento de potência reduzida, profundidade

ótima e área mínima de circuitos com FPGA baseados em K-LUTs

O PwAwMap apresentado em (BUCUR, CUPCEA, et al., 2009), é um algoritmo de mapeamento que tem como propósito prioritário a redução no consumo de potência e na profundidade dos circuitos, e tem como propósito secundário, a redução conjunta de profundidade, área e potência.

Para fins de redução de consumo de potência dinâmica, os autores utilizam um modelo baseado em simulação que estima a atividade de chaveamento dinâmica dos nós da rede. Além disso, para melhorar a precisão nesta determinação, durante a simulação, é verificada uma condição de convergência que deve ser atendida para todas as redes. Esta condição é apresentada na equação (3-2).

|

| (3-2)

Na equação, N é o número de vetores de simulação que ocasionaram uma quantidade n de mudanças de estado lógico (transições) em uma determinada rede, e N + m é o número de vetores de simulação necessários para que essa quantidade de transições seja aumentada de uma unidade, tornando-se n + 1. Assim, se a diferença entre os termos é menor que a medida de precisão ε, pode-se concluir que o número de vetores de simulação já foi suficiente para garantir a convergência da atividade de chaveamento.

O PwAwMap opera em três estágios. No primeiro estágio, são gerados todos os K-feasible cortes de todos os nós da rede em ordem topológica, através do método da enumeração de cortes. Além disso, para garantir o mapeamento de profundidade mínima, é calculado o retardo de transição para cada corte. No segundo estágio, são

determinadas as funções de custo para todos os cortes. Na realidade, essa função de custo é atribuída aos cortes ainda durante o estágio de geração dos mesmos. No terceiro estágio, a rede é percorrida em ordem topológica reversa, iniciando pela saída primária de maior retardo, e são selecionados os cortes representativos para cada nó usando as funções de custo.

O retardo de transição, calculado no primeiro estágio é o retardo mínimo de cada corte. Para determiná-lo, são utilizados os retardos das entradas dos cortes e o valor de retardo atribuído a uma LUT (considerado 1). O processo de atribuição dos retardos pode ser compreendido a partir do exemplo da Figura 35.

Figura 35. Exemplo de atribuição do retardo dos cortes

De acordo com a Figura, as entradas primárias contém uma informação de retardo individual. Os possíveis cortes (para K = 3) dos nós da rede são mostrados no lado direito da Figura 35. Tomando como exemplo o nó n, que possui apenas um corte de entradas c e d, vê-se que o retardo deste corte é 3, já que, o maior retardo das entradas é 2. Tomando como segundo exemplo, o nó u, que possui dois cortes possíveis tem-se: para o corte de entradas a e s, o retardo atribuído é 5, já que, o maior retardo das entradas é 4 (correspondente a entrada s); Para o corte de entradas a, b e n, o retardo atribuído é 4, já que, o maior retardo entre todas as entradas do corte é 3. O mesmo raciocínio pode ser feito para os demais nós da rede.

As funções de custo determinadas no segundo estágio são as funções de profundidade e potência. A medida de profundidade (DpthMtrc) de um nó u é calculada a partir da menor profundidade entre todos os K-feasible cortes de u, denominado, cortes(u) conforme equação (3-3) .

Cortes(x) = {(x;2)} Cortes (n) = {(n;3)}

Cortes (s) = {(s;4), (n,s;4)}

Cortes (v) = {v;4), (v,n;4), (v,x;4)} Cortes (u) = {(u;5), (u,s;4)}

( ) (3-3) A medida de potência (EstimPwrMtrc) é localmente aplicada ao conjunto de cortes do nó u. Essa medida é mostrada na equação (3-4) .

( )

( )

(3-4)

Na equação, d(u) representa a densidade de transição do nó u e fanout(u) representa o número de saídas do nó u.

A função de custo global (GlobalCost) é definida como a soma ponderada das funções das equações (3-3) e (3-4), conforme equação (3-5).

( )

( )

(3-5)

No terceiro estágio, a rede é percorrida em ordem topológica reversa, iniciando pela saída primária de maior retardo, e a seleção dos cones de cada nó será guiada pelas funções de custo. Assim, as funções de custo das equações (3-3) e (3-4) são utilizadas para determinar o mapeamento da rede de profundidade mínima e potência otimizada.

O trabalho não fez uso de ferramentas de estimativa de potência. Sendo a potência dinâmica de um nó da rede mapeada estimada pela equação (3-6).

(3-6)

Foram realizadas três experiências para o PwAwMap utilizando 15 circuitos combinacionais do benchmark MCNC (YANG, 1991). Na primeira, foi utilizado um mapeamento com foco em potência e profundidade ótima. Esse mapeamento mostrou uma redução de 6,07% no consumo de potência comparado ao mapeamento de profundidade ótima. O segundo experimento relaxou a consideração de profundidade e obteve um menor consumo de potência. O terceiro experimento mantém a profundidade ótima e procura, entre as soluções eficientes em potência, aquelas tendo área mínima. Esse último experimento mostrou uma eficiência de 2,37% comparada à solução de profundidade ótima.

3.1.3. SVmap-2/DVmap2 - Mapeamento Tecnológico e Agrupamento