• Nenhum resultado encontrado

Genetico Multiobjetivo

TAM_POP = 40 TAM_POP = 50 TAM_POP =

5.5. Agrupamento Multiobjetivo

5.5.2. Função de Atração Multiobjetivo

Para garantir o desempenho dos circuitos, a estratégia de agrupamento deve buscar associar em um mesmo cluster elementos lógicos cujas conexões sejam críticas. Novamente, o conceito de criticidade é utilizado como base para este fim. A análise estática de temporização (STA) permite a determinação das medidas de folga (slack) e, consequentemente, de criticidade.

A determinação dos retardos no nível de agrupamento, entretanto, não é uma tarefa trivial, tendo em vista que ainda não estão definidos os recursos de roteamento necessários a estas conexões. Por isso, é necessária a utilização de um modelo que considera características físicas descritas na arquitetura do FPGA, como retardos dos switches, capacitâncias e resistências dos switches e fios. O modelo estima a quantidade de switches e os comprimentos de fio médio necessários a uma conexão intercluster. Na proposta desta tese, foi utilizado o modelo apresentado no VPR (LUU, KUON, et al., 2009) que considera a utilização média de três switches e dois fios de comprimento quatro. A Figura 76 permite uma melhor visualização do modelo adotado, o primeiro switch (SB1) conecta o pino de saída do bloco lógico fonte (BL fonte) ao primeiro

segmento de fio, o segundo switch (SB2) conecta os dois segmentos de fio e o terceiro switch (SB3) conecta o segundo segmento de fio ao pino do bloco destino (BL destino).

O processo de análise de tempo se dá pela construção de um grafo. Todo pino da netlist mapeada torna-se um nó do grafo e a conexão entre os pinos é representada como uma transição. Toda transição apresenta um retardo. Os retardos nas transições internas são definidos na descrição da arquitetura, como por exemplo, o retardo interno de uma LUT ou flip-flop.

Figura 77. Exemplo de circuito com atribuição do grafo correspondente para a fase de agrupamento O lado esquerdo da Figura 77 apresenta um circuito exemplo formado por 3 LUTs e 1 flip-flop, a representação do grafo correspondente ao circuito é mostrada a direita. Observa-se que cada pino foi associado a um nó do grafo e às transições é atribuído o retardo correspondente: Δff para o retardo interno do flip-flop , Δcon para a

conexão entre blocos, ΔLUT para o retardo interno da LUT .

Antes da análise de tempo, para cada nó é definido um nível. O nível de um nó de entrada (entrada primária ou saída de flip-flop) é zero, o nível de um nó que é dirigido pelo nó de entrada é 1, e assim sucessivamente. Os níveis dos nós do grafo da Figura 77 são ilustrados na Figura 78.

.

Para determinação do tempo de chegada (TArr) o grafo é atravessado a partir do

menor nível até o maior nível numa busca em profundidade. Para o nível 0, é atribuído o tempo de chegada 0 às entradas primárias e um retardo do clock às saídas Q dos flip- flops. Finalizado um nível, os nós com nível imediatamente superior são buscados. O TArr de um nó j que é alimentado por um nó i é dado por:

(5-18)

Onde Δij é o retardo da conexão entre i e j e depende da natureza dessa conexão,

podendo ser uma conexão interna ou externa. No caso de uma conexão externa, o retardo intercluster é utilizado. Um exemplo para os retardos de conexões e os tempos de chegada dos nós do grafo da Figura 77 é mostrado em itálico acima dos nós na Figura 78.

Figura 78. Atribuição do nível e tempo de chegada dos nós e retardos das conexões

O tempo necessário (TReq) dos nós de saída (saídas primárias ou entradas dos

flip-flops) é definido como o maior tempo de chegada obtido a partir da análise do grafo na busca em profundidade. Os demais tempos necessários são obtidos agora atravessando o grafo de forma reversa, iniciando pelo maior nível. Para uma conexão entre o nó i e o nó j, o tempo necessário do nó i é dado pela equação (5-19) e os tempos de chegada dos nós do grafo da Figura 77 são mostrados em itálico abaixo dos nós na Figura 79.

Figura 79. Atribuição do tempo necessário aos nós da rede

A partir das medidas TArr e TReq é determinada a folga de um nó i que tem um nó

j como fanout segundo a equação (5-20). As folg as dos nós do grafo da Figura 77 são mostrados em itálico abaixo dos nós na Figura 80.

(5-20)

Figura 80. Atribuição das folgas aos nós e destaque do caminho crítico

Finalmente, uma vez determinada a folga, para a determinação da criticidade, o modelo definido na equação (3-21), em que o desempate entre duas conexões igualmente críticas é dado pelo número de redes afetadas por essas conexões, é utilizado neste trabalho.

Com o propósito de melhorar a roteabilidade e a largura do canal, tradicionalmente busca-se agrupar elementos lógicos em blocos lógicos baseado no

número de redes comuns entre eles. Neste trabalho é apresentada uma nova proposta, por favorecer o agrupamento de blocos que, não só tenham um maior número de redes comuns, mas que tenham uma tendência a minimizar o número de conexões externas ao cluster.

Supondo como exemplo o cluster da Figura 81 (a) que tem a capacidade de armazenar 4 blocos lógicos. Este cluster possui uma posição livre e tem como candidatos a agrupamento os elementos x, y, z e w. Se utilizar-se a medida de número de redes comuns, será escolhido o elemento y para ser agrupado (2 redes comuns, rede b e rede c).

O agrupamento do elemento y, implicaria em, necessariamente, 3 conexões externas, conforme mostra a Figura 81 (b). Se por outro lado, for escolhido o elemento x para agrupar (cenário da Figura 81 (c)), que possui apenas uma rede comum ao cluster, tem-se as possíveis situações: o número de conexões criadas mínima seria 2, se y, z e w fossem agrupadas em um outro cluster, de acordo com Figura 82 (a); e máxima seria de 4, se z, y e w ocupassem clusters diferentes de acordo com Figura 82 (b). Assim, neste caso, há uma possibilidade de reduzir o número de conexões externas escolhendo para agrupar o elemento x, mesmo este tendo menor número de redes comuns ao cluster do que o bloco y.

Figura 81. (a) Exemplo cluster com um espaço livre e os blocos candidatos x, y, z e w. (b) Cenário se o bloco y é selecionado para compor o cluster. (c) Cenário se o bloco x é selecionado para compor o cluster.

Figura 82. (a) Possível cenário se os blocos y, z e w são agrupados em um mesmo cluster. (b) Possível cenário se os blocos y, z e w são agrupados em clusters diferentes .

Considerando agora um exemplo em que o cluster possui capacidade de encapsular 5 blocos e possui 2 posições livres, conforme ilustrado na Figura 83(a), se selecionássemos o elemento x e posteriormente o elemento w (Figura 83(b)), formaríamos o mínimo de 2 conexões externas ( se y e z fossem agrupados em um mesmo cluster) e um máximo de 3 conexões (se y e z ocupassem clusters diferentes). Já se os elementos y e w fossem selecionados (Figura 83(c)) para agrupamento, teríamos, necessariamente, duas conexões criadas.

Figura 83. Exemplo cluster com dois espaços livre e os blocos candidatos x, y, z e w.

Deste modo, podemos concluir que a melhor seleção do elemento que ocupará o cluster depende da configuração do elemento em relação ao cluster, mas também,

(a) (b)

depende do estado atual do cluster. Considerando estes aspectos, é proposta uma nova função de roteabilidade entre o cluster p e o bloco candidato B. A nova função comporá a função de atração multiobjetivo.

(5-21)

Onde é uma constante menor que 1, npinos_externos é o número de pinos das

redes comuns a p e B que são externos ao cluster e npinospossiveis é o número de pinos que

poderia ser encapsulado no cluster nos próximos ciclos, isto só é possível, se houver posições livres no cluster. Para a determinação de npinospossiveis, o algoritmo proposto

varre todos os pinos das redes que conectam o bloco candidato ao cluster, e verificam se os blocos aos quais estes pinos são alocados já estão agrupados. Caso estes blocos não estejam agrupados, o algoritmo verifica se o tipo do bloco é compatível com o tipo do cluster, se essa compatibilidade existe, o npinospossiveis é incrementado.

Para análise com foco na redução do consumo de potência, utilizamos a ideia de que redes com alta atividade de chaveamento devem ser encapsuladas dentro dos mesmos clusters. Desta forma, a função de atração proposta para potência corresponde à máxima atividade de chaveamento (α) das redes comuns entre p e B.

(5-22)

A função de atração multiobjetiva proposta neste trabalho é mostrada na equação (5-23). Para o objetivo de desempenho, buscamos encapsular juntos os blocos que fazem parte do caminho crítico. Para os objetivos de área e roteabilidade, buscamos reduzir a quantidade de redes externas. Já para potência, buscamos encapsular as altas atividades de chaveamento internamente nos clusters.

(5-23)