• Nenhum resultado encontrado

Têmpera simulada aplicada no mapeamento tecnológico de FPGAs baseadas em LUTs

N/A
N/A
Protected

Academic year: 2021

Share "Têmpera simulada aplicada no mapeamento tecnológico de FPGAs baseadas em LUTs"

Copied!
72
0
0

Texto

(1)

Programa de P ´os-Graduac¸ ˜ao em Computac¸ ˜ao

Dissertac¸ ˜ao

T ˆempera Simulada aplicada no Mapeamento Tecnol ´ogico de FPGAs baseadas em LUTs

Matheus Garcia Nachtigall

(2)

Matheus Garcia Nachtigall

T ˆempera Simulada aplicada no Mapeamento Tecnol ´ogico de FPGAs baseadas em LUTs

Dissertac¸ ˜ao apresentada ao Programa de P ´os-Graduac¸ ˜ao em Computac¸ ˜ao da Universi-dade Federal de Pelotas, como requisito par-cial `a obtenc¸ ˜ao do t´ıtulo de Mestre em Ci ˆencia da Computac¸ ˜ao

Orientador: Prof. Dr. Paulo Roberto Ferreira Jr. Coorientador: Prof. Dr. Felipe de Souza Marques

(3)

N124t Nachtigall, Matheus Garcia

NacTêmpera simulada aplicada no mapeamento

tecnológico de FPGAs baseadas em LUTs / Matheus Garcia Nachtigall ; Paulo Roberto Ferreira Júnior, orientador ; Felipe de Souza Marques, coorientador. — Pelotas, 2015.

Nac72 f. : il.

NacDissertação (Mestrado) — Programa de Pós-Graduação em Computação, Centro de Desenvolvimento Tecnológico, Universidade Federal de Pelotas, 2015.

Nac1. Otimização de circuitos integrados. 2. Mapeamento tecnológico. 3. Têmpera simulada. 4. FPGA. I. Ferreira Júnior, Paulo Roberto, orient. II. Marques, Felipe de Souza, coorient. III. Título.

CDD : 005 Elaborada por Aline Herbstrith Batista CRB: 10/1737

(4)

RESUMO

NACHTIGALL, Matheus Garcia. T ˆempera Simulada aplicada no Mapeamento Tecnol ´ogico de FPGAs baseadas em LUTs. 2015. 72 f. Dissertac¸ ˜ao (Mestrado em Ci ˆencia da Computac¸ ˜ao) – Programa de P ´os-Graduac¸ ˜ao em Computac¸ ˜ao, Centro de Desenvolvimento Tecnol ´ogico, Universidade Federal de Pelotas, Pelotas, 2015.

Existem v ´arias t ´ecnicas para a otimizac¸ ˜ao de atributos de circuitos integrados. O foco atual dessas t ´ecnicas ´e a minimizac¸ ˜ao da ´area do circuito em quest ˜ao. Por ´em, as t ´ecnicas existentes possuem diversas etapas que precisam ser melhoradas, entre elas a etapa de Mapeamento Tecnol ´ogico (MT). O Mapeamento Tecnol ´ogico ´e uma etapa crucial no processo de s´ıntese l ´ogica, pois ele define qual conjunto de elementos l ´ogicos ser ˜ao utilizados para implementar o circuito na tecnologia alvo. Na literatura existem v ´arias abordagens diferentes para otimizac¸ ˜ao da etapa de mapeamento e atualmente as metodologias iterativas est ˜ao se popularizado.

Esta dissertac¸ ˜ao prop ˜oe uma nova abordagem para o Mapeamento Tecnol ´ogico de Field Programmable Gate Arrays (FPGAs), baseada em t ´ecnicas de otimizac¸ ˜ao de Intelig ˆencia Artificial (IA), mais especificamente a t ´ecnica de T ˆempera Simulada. A utilizac¸ ˜ao de uma t ´ecnica de IA no Mapeamento Tecnol ´ogico ´e uma abordagem promissora pois se diferencia fortemente das t ´ecnicas j ´a existentes, devido aos fatores de aleatoriedade em t ´ecnicas de otimizac¸ ˜ao baseados em IA.

A abordagem elaborada age em uma etapa do mapeamento chamada de cober-tura, criando uma soluc¸ ˜ao para o circuito baseada no n ´umero de cortes-K necess ´arios para uma cobertura total do mesmo. Cada corte-K pode ser diretamente relacionado a uma Look-Up Table(LUT) da tecnologia FPGA, permitindo assim a gerac¸ ˜ao de um circuito com a l ´ogica equivalente a requisitada. Essa abordagem foi implementada na ferramenta FlexMap, a qual ´e um framework para o desenvolvimento de m ´etodos para o MT. Foram realizados testes em 85 benchmarks dos pacotes ISCAS85 e MCNC91, amplamente conhecidos na ´area e frequentemente utilizados para testes de desem-penho de novas abordagens. Os testes realizados apresentaram resultados promis-sores, mostrando que a abordagem desenvolvida consegue encontrar soluc¸ ˜oes com-par ´aveis em v ´arios casos `a ferramenta ABC, considerada estado-da-arte no processo de MT. Os resultados obtidos pela abordagem proposta obtiveram melhoras em apro-ximadamente 19% dos casos avaliados com K=4 e 26% dos casos com K=5 sobre os resultados do ABC.

Palavras-chave: Otimizac¸ ˜ao de Circuitos Integrados, Mapeamento Tecnol ´ogico, T ˆempera Simulada, FPGA.

(5)

NACHTIGALL, Matheus Garcia. Simulated Annealing applied to LUT-based FPGA Technology Mapping. 2015. 72 f. Dissertac¸ ˜ao (Mestrado em Ci ˆencia da Computac¸ ˜ao) – Programa de P ´os-Graduac¸ ˜ao em Computac¸ ˜ao, Centro de Desenvolvi-mento Tecnol ´ogico, Universidade Federal de Pelotas, Pelotas, 2015.

Currently there are several techniques for integrated circuit’s atribute optimization. The current focus of these techniques is to minimize the area of the given circuit. These current techniques, however, have several stages that need improvement, including the Technology Mapping stage. The technology mapping is a crucial step in the logic synthesis process, because it defines which set of logic elements will be used to im-plement the circuit in the target technology. In the literature there are several different approaches to optimize the mapping stage and currently iterative methodologies are becoming popular.

This dissertation proposes a new approach to Technology Mapping of Field Pro-grammable Gate Arrays (FPGAs), based on optimization techniques using Artificial Intelligence (AI), more specifically the Simulated Annealing technique, in order to pro-pose an alternative solution to the problem. The utilization of an AI technique in nology mapping is promissing approach because it strongly differs from existing tech-niques due to the randomness factors in optimization techtech-niques based on AI.

The developed approach acts on the mapping stage called coverage, creating a solution for the circuit based on the number of k-cuts needed for a complete cover-age. Each k-cut can be directly related to a FPGA’s Look-Up Table (LUT), allowing the generation of a circuit equivalent to the required logic. This approach has been im-plemented in the FlexMap tool, which is a framework for developing Technology Map-ping methods. Tests were performed in 85 benchmarks of the ISCAS85 and MCNC91 packages, widely known in the area and commonly used for performance testing of new approaches. The tests conducted in the implemented approach had promising results, showing that the developed technique can find solutions comparable in several cases to the ABC tool, which is considered state-of-the-art in the Technology Mapping process. The results obtained by the proposed approach obtained improvements in approximately 19% of the evaluated benchmarks with K=4 and 26% with K=5 over ABC’s results.

Keywords: Integrated Circuit Optimization, Technology Mapping, Simulated Anneal-ing, FPGA.

(6)

LISTA DE FIGURAS

Figura 1 Transformac¸ ˜ao de um circuito em DAG . . . 17

Figura 2 Porta OR convertida em AND e Inversores . . . 18

Figura 3 Convers ˜ao DAG ⇒ AIG . . . 18

Figura 4 Representac¸ ˜ao de um AIG no formato AIGER . . . 19

Figura 5 Casamento de um AIG com uma biblioteca de c ´elulas . . . 21

Figura 6 Algoritmo de cortes-K aplicado no AIG . . . 21

Figura 7 Cobertura do circuito utilizando biblioteca de c ´elulas . . . 22

Figura 8 Exemplos de coberturas do AIG . . . 23

Figura 9 Fluxograma do T ˆempera Simulada . . . 26

Figura 10 Particionamento do DAG e Fluxograma do DAGON . . . 29

Figura 11 Agrupamento de nodos da ferramenta ELIS . . . 30

Figura 12 Gerac¸ ˜ao da cobertura inicial e processo de limpeza . . . 37

Figura 13 Execuc¸ ˜ao de uma iterac¸ ˜ao da t ´ecnica de T ˆempera Simulada . . . . 39

Figura 14 Fluxograma do Flexmap-TS no Cen ´ario 1 . . . 40

Figura 15 Comportamento da equac¸ ˜ao de probabilidade no Cen ´ario 1 . . . . 43

Figura 16 Comportamento da equac¸ ˜ao de probabilidade no Cen ´ario 2 . . . . 44

Figura 17 Gr ´afico de execuc¸ ˜ao de um benchmark no Cen ´ario 2 . . . 44

Figura 18 Fluxograma do Cen ´ario 2 . . . 45

Figura 19 Subconjunto de pontos da execuc¸ ˜ao do FlexMap-TS . . . 47

Figura 20 Alguns resultados do Cen ´ario 1 . . . 49

Figura 21 Cen ´ario 1(K=4) . . . . 51

Figura 22 Cen ´ario 2(K=4) . . . . 53

Figura 23 Cen ´ario 2(K=5) . . . . 55

(7)

Tabela 1 Biblioteca de c ´elulas . . . 20 Tabela 2 Tabela comparativa dos principais m ´etodos de mapeamento . . . . 34 Tabela 3 Tabela de an ´alise estat´ıstica . . . 57

(8)

LISTA DE ABREVIATURAS E SIGLAS

IA Intelig ˆencia Artificial MT Mapeamento Tecnol ´ogico TS T ˆempera Simulada

VLSI Very Large Scale Integration DAG Directed Acyclic Graph AIG And Inverter Graph

FPGA Field Programmable Gate Arrays LUT Look-Up Table

(9)

1 INTRODUC¸ ˜AO . . . . 11

1.1 Objetivos . . . . 12

1.2 Metodologia . . . . 12

1.3 Organizac¸ ˜ao do trabalho . . . . 13

2 CONCEITOS B ´ASICOS . . . . 14

2.1 Mapeamento Tecnol ´ogico . . . . 14

2.1.1 Decomposic¸ ˜ao . . . 15

2.1.2 Casamento . . . 17

2.1.3 Cobertura . . . 20

2.2 T ˆempera Simulada . . . 23

2.2.1 Inicializac¸ ˜ao do algoritmo . . . 24

2.2.2 Busca de soluc¸ ˜oes vizinhas e probabilidade de aceitac¸ ˜ao . . . 25

2.3 Considerac¸ ˜oes Finais . . . . 27

3 TRABALHOS RELACIONADOS . . . . 28

3.1 Dagon . . . . 28

3.2 WaveFront . . . . 28

3.3 ELIS - Environment for Logic Synthesis . . . . 29

3.4 VIRMA - Virtual Technology Mapping Tool . . . 30

3.5 Manohararajah . . . . 30

3.6 Mishchenko . . . . 31

3.7 Intelig ˆencia Artificial no Mapeamento Tecnol ´ogico . . . . 31

3.7.1 GAFPGA - Genetic Algorithm for FPGA Technology Mapping . . . 32

3.7.2 MOGAMAP . . . 33

3.8 Considerac¸ ˜oes Finais . . . . 33

4 ABORDAGEM PROPOSTA . . . . 35

4.1 T ˆempera Simulada aplicada no Mapeamento Tecnol ´ogico . . . . 35

4.1.1 Cobertura Inicial e Processo de Limpeza . . . 35

4.1.2 Iterac¸ ˜ao do T ˆempera Simulada . . . 37

4.2 Desenvolvimento da Abordagem . . . . 38

4.2.1 Cen ´ario 1 . . . 40

4.2.2 Cen ´ario 2 . . . 42

(10)

5 EXPERIMENTOS E RESULTADOS . . . . 48

5.1 Cen ´ario 1 . . . . 49

5.2 Cen ´ario 2 . . . . 52

5.3 Considerac¸ ˜oes Finais . . . . 56

6 CONCLUS ˜OES . . . . 58

6.1 Trabalhos Futuros . . . . 59

REFER ˆENCIAS . . . . 60

(11)

Atualmente existe uma grande demanda de desenvolvimento de t ´ecnicas para automac¸ ˜ao do processo de concepc¸ ˜ao dos circuitos integrados, com os principais objetivos sendo a reduc¸ ˜ao do atraso (CONG; C.; Y., 1999; CONG; DING, 1994), pot ˆencia (PANDEY; CHATTOPADHYAY, 2003) e ´area (MANOHARARAJAH; BROWN; VRANESIC, 2006; CHEN; CONG, 2004; KAO; LAI, 2005; TESLENKO; DUBROVA, 2004) de um circuito. O desenvolvimento de novas t ´ecnicas para o aprimoramento desse tipo de circuito, chamado de Very Large Scale Integration (VLSI), tem recebido grande atenc¸ ˜ao tanto na ind ´ustria como no meio acad ˆemico. Embora muitos avanc¸os na ´area de concepc¸ ˜ao de circuitos integrados tenham sido desenvolvidos nas ´ultimas d ´ecadas, projetar circuitos VLSI eficientes ainda n ˜ao ´e uma tarefa trivial. Por este motivo, ´e dada uma atenc¸ ˜ao especial `a fase de projeto desses circuitos.

O Mapeamento Tecnol ´ogico (MT) ´e a etapa da s´ıntese l ´ogica que escolhe quais portas l ´ogicas ser ˜ao usadas na implementac¸ ˜ao de um leiaute em uma dada tecnolo-gia (MARQUES et al., 2007). Esta etapa de mapeamento tem um grande impacto na estrutura do circuito e, consequentemente, no seu desempenho e ´area. Por isso a etapa de MT ´e considerada uma das mais importantes e ´e foco de v ´arias pesquisas e trabalhos.

Existem v ´arias ferramentas que encontram boas soluc¸ ˜oes para o MT, como por exemplo a ferramenta ABC (ABC, 2014), SIS (SENTOVICH et al., 1992) e VIRMA (MARQUES et al., 2007). Por ´em essas soluc¸ ˜oes ainda n ˜ao alcanc¸am ga-rantidamente o resultado ´otimo, dando margem para que novas abordagens sejam implementadas na busca de melhores resultados.

Al ´em das abordagens j ´a existentes na literatura, existem alguns m ´etodos que j ´a uti-lizam t ´ecnicas de Intelig ˆencia Artificial no Mapeamento Tecnol ´ogico, como por exemplo (KOMMU; POMERANZ, 1993) e (SOUZA; SILVA-FILHO, 2013), que utilizam t ´ecnicas de algoritmos gen ´eticos para a s´ıntese de Field Programmable Gate Arrays (FPGAs), com o foco em uma otimizac¸ ˜ao de ´area baseada em Look-Up Tables (LUTs). Apesar das abordagens utilizando algoritmos gen ´eticos retornarem resultados interessantes, esses resultados j ´a s ˜ao ultrapassados pelas ferramentas atuais de s´ıntese l ´ogica.

(12)

12

O T ˆempera Simulada (TS) (BERTSIMAS; TSITSIKLIS, 1993; VAN LAARHOVEN; AARTS, 1987) ´e um algoritmo de otimizac¸ ˜ao global utilizado na minimizac¸ ˜ao de func¸ ˜oes em um espac¸o de busca de soluc¸ ˜oes. Essa t ´ecnica ´e amplamente conhecida na ´area de Intelig ˆencia Artificial e demonstra bons resultados em v ´arios problemas de otimizac¸ ˜ao (AARTS; KORST, 1988; GOODSELL; OLSON, 1990; SVERGUN, 1999). Considerando a efici ˆencia da t ´ecnica e a import ˆancia do MT na s´ıntese de circuitos integrados, este trabalho tenta desenvolver uma abordagem alternativa ao problema e avaliar sua efici ˆencia.

1.1

Objetivos

Este trabalho tem como objetivo principal o desenvolvimento de um algoritmo de otimizac¸ ˜ao para o Mapeamento Tecnol ´ogico atrav ´es da aplicac¸ ˜ao da t ´ecnica de T ˆempera Simulada na etapa de cobertura deste problema. Al ´em dessa implementac¸ ˜ao, prop ˜oe-se analisar o comportamento do TS quando aplicado na otimizac¸ ˜ao de circuitos, verificando elementos como o ajuste de temperatura, a func¸ ˜ao de probabilidade de troca de estados, a gerac¸ ˜ao do estado inicial do problema e o n ´umero de iterac¸ ˜oes necess ´arias para que o algoritmo consiga convergir para uma soluc¸ ˜ao aceit ´avel. Assim, ´e proposta uma abordagem de MT para FPGAs, onde o foco ´e a reduc¸ ˜ao do n ´umero de LUTs necess ´arias para uma representac¸ ˜ao completa do circuito.

1.2

Metodologia

Este trabalho prop ˜oe uma implementac¸ ˜ao da t ´ecnica de T ˆempera Simulada para a etapa de s´ıntese l ´ogica do Mapeamento Tecnol ´ogico (MT), buscando como objetivo principal a minimizac¸ ˜ao de ´area do circuito. A abordagem proposta tem o foco de mapeamento para FPGAs, que s ˜ao independentes de bibliotecas de c ´elulas.

A abordagem implementada foi incorporada a uma ferramenta em desenvolvimento na Universidade Federal de Pelotas, chamada de FlexMap. Essa ferramenta imple-menta alguns m ´etodos de mapeamento baseados em abordagens j ´a existentes na literatura, como por exemplo o mapeamento utilizando bibliotecas virtuais (CORREIA, 2004) e mapeamentos utilizando cortes-K (MISHCHENKO et al., 2005). A vantagem dessa ferramenta ´e a possibilidade de configurac¸ ˜ao de diversas etapas do fluxo do Mapeamento Tecnol ´ogico, como por exemplo, a estrutura de dados, m ´etodo de ca-samento, estrat ´egia de cobertura ou func¸ ˜ao custo. A abordagem implementada foi nomeada FlexMap-TS.

A vers ˜ao inicial do FlexMap-TS foi baseada no algoritmo cl ´assico de T ˆempera Simulada. Essa implementac¸ ˜ao gerou o primeiro Cen ´ario de testes, onde foi

(13)

rea-lizado uma bateria de testes extensiva com o objetivo de realizar uma an ´alise de comportamento do algoritmo. Os circuitos de teste utilizados foram selecionados de pacotes de benchmarks normalmente utilizados para testes de t ´ecnicas de Ma-peamento Tecnol ´ogico, chamados de ‘ISCAS85’ (BRYAN, 1985; HANSEN; YALCIN; HAYES, 1999) e ‘MCNC91’ (YANG, 1991). Estes pacotes s ˜ao amplamente conhecidos na ´area e s ˜ao utilizados frequentemente para avaliac¸ ˜ao de t ´ecnicas de Mapeamento Tecnol ´ogico (CHATTERJEE; MISHCHENKO; BRAYTON, 2006; BERKELAAR; JESS, 1988; MARQUES et al., 2005; CHANG et al., 2010).

A partir dos experimentos realizados foi poss´ıvel avaliar a efici ˆencia do Cen ´ario 1. Com essa an ´alise, foram identificadas limitac¸ ˜oes no FlexMap-TS que levaram ao desenvolvimento de um outro Cen ´ario, mais eficiente. O Cen ´ario 2 tratou problemas como o ajuste da vari ´avel temperatura do TS e da condic¸ ˜ao de parada do FlexMap-TS. Ap ´os aplicadas essas mudanc¸as, uma nova s ´erie de experimentos foi realizada, comprovando a efetividade das melhorias implementadas.

Para avaliar a efici ˆencia do FlexMap-TS, foram comparados os experimentos rea-lizados com os resultados obtidos atrav ´es da ferramenta ABC (ABC, 2014), conside-rada estado-da-arte no problema abordado.

Apesar de n ˜ao conseguir superar o ABC de modo geral, o FlexMap-TS conseguiu v ´arios resultados compar ´aveis e at ´e melhores que o ABC. A abordagem implementada no Cen ´ario 2 conseguiu encontrar resultados superiores em aproximadamente 19% dos casos com K=4 e 26% dos casos com K=5.

1.3

Organizac¸ ˜ao do trabalho

Este trabalho divide-se em 6 cap´ıtulos de forma a explicar todos os principais con-ceitos envolvidos na implementac¸ ˜ao, execuc¸ ˜ao e an ´alise dos dados gerados.

No cap´ıtulo 2 s ˜ao abordados os conceitos e definic¸ ˜oes necess ´arios para enten-dimento do trabalho. Esse cap´ıtulo explica todas as etapas inclusas no processo de Mapeamento Tecnol ´ogico, como tamb ´em os fundamentos do algoritmo de T ˆempera Simulada.

O cap´ıtulo 3 apresenta a revis ˜ao bibliogr ´afica da ´area de Mapeamento Tecnol ´ogico, mostrando quais s ˜ao as abordagens mais difundidas da literatura. Neste cap´ıtulo tamb ´em ´e discutida a ferramenta ABC, considerada estado-da-arte no MT. Adicional-mente, tamb ´em s ˜ao mostrados os trabalhos da literatura que j ´a utilizam Intelig ˆencia Artificial no Mapeamento Tecnol ´ogico.

No cap´ıtulo 4 ´e apresentada a abordagem implementada. Este cap´ıtulo detalha como a t ´ecnica de T ˆempera Simulada foi adaptada para o Mapeamento Tecnol ´ogico, apresentando as etapas necess ´arias para a preparac¸ ˜ao do circuito para sua utilizac¸ ˜ao no TS. Adicionalmente, s ˜ao apresentados os dois Cen ´arios desenvolvidos durante a

(14)

14

execuc¸ ˜ao deste trabalho, explicando as principais diferenc¸as entre cada um.

No cap´ıtulo 5 s ˜ao apresentados os testes realizados utilizando a ferramenta fi-nalizada, fazendo an ´alises estat´ısticas e comparando os resultados obtidos com a ferramenta ABC.

Por fim, no cap´ıtulo 6, s ˜ao expostas as conclus ˜oes, considerac¸ ˜oes finais da dissertac¸ ˜ao e as propostas de trabalhos futuros.

(15)

O processo de Mapeamento Tecnol ´ogico envolve v ´arias etapas e sub ´areas da s´ıntese de circuitos integrados e ´e considerado uma das fases mais importantes da etapa de s´ıntese l ´ogica. Este cap´ıtulo explica os conceitos necess ´arios para entendi-mento do Mapeaentendi-mento Tecnol ´ogico e da t ´ecnica de T ˆempera Simulada.

2.1

Mapeamento Tecnol ´

ogico

O processo de s´ıntese dos circuitos digitais pode ser executado de v ´arias manei-ras. Entretanto, duas delas merecem destaque: custom e semicustom. A metodologia custom ´e feita manualmente e sem automatizac¸ ˜ao de etapas. Esta metodologia ´e for-temente dependente da experi ˆencia dos projetistas desenvolvedores e pode resultar em circuitos consideravelmente otimizados, por ´em ela ´e considerada extremamente complexa quando aplicada em circuitos de grande porte.

A metodologia semicustom conta com a utilizac¸ ˜ao de ferramentas de apoio res-pons ´aveis por aplicar algoritmos de otimizac¸ ˜ao no circuito, reduzindo drasticamente a complexidade da tarefa e acelerando o processo de s´ıntese. Nessa metodologia existem 2 abordagens consideradas as mais utilizadas: baseada em bibliotecas de c ´elulas e baseada em matrizes. A abordagem baseada em bibliotecas conta com a utilizac¸ ˜ao de uma biblioteca pr ´e-programada de c ´elulas, onde o objetivo da otimizac¸ ˜ao ´e encontrar partes do circuito que possuam a l ´ogica implementada em algum elemento da biblioteca. O objetivo dos algoritmos que utilizam essa abordagem ´e encontrar a melhor configurac¸ ˜ao de c ´elulas para construir o circuito.

A abordagem baseada em matrizes utiliza elementos reconfigur ´aveis que repre-sentam a l ´ogica que se deve implementar. Nessa abordagem, ´e importante citar os Field Programable Gate Arrays (FPGA), que ´e composta de LUTs (do ingl ˆes Look-Up Table). A LUT ´e o componente l ´ogico da FPGA respons ´avel por armazenar a tabela verdade de uma func¸ ˜ao. Uma LUT que representa a tabela verdade de uma func¸ ˜ao com n entradas consegue representar 22n

func¸ ˜oes l ´ogicas. Em geral, o objetivo dessa abordagem ´e a reduc¸ ˜ao do n ´umero de LUTs necess ´arias para a implementac¸ ˜ao do

(16)

16

circuito.

A metodologia semicustom ´e dividida em tr ˆes etapas: s´ıntese estrutural, s´ıntese l ´ogica e s´ıntese f´ısica. Esse trabalho foca nos problemas relacionados `a etapa de s´ıntese l ´ogica da metodologia semicustom, respons ´avel em transformar a descric¸ ˜ao do circuito em uma descric¸ ˜ao de n´ıvel l ´ogico. O principal objetivo dessa transformac¸ ˜ao ´e a otimizac¸ ˜ao das caracter´ısticas do circuito, como consumo de energia, atraso, ´area, etc.

Existem diferentes m ´etodos para a fatorac¸ ˜ao de func¸ ˜oes l ´ogicas. Alguns m ´etodos s ˜ao eficientes e simples, por ´em com o aumento da l ´ogica da func¸ ˜ao necess ´aria para o circuito necess ´ario, esses m ´etodos acabam n ˜ao se tornando vi ´aveis para execuc¸ ˜ao. A busca de uma fatorac¸ ˜ao ideal para uma func¸ ˜ao booleana ´e um problema NP-Dif´ıcil (MINTZ; GOLUMBIC, 2005). Por isso, soluc¸ ˜oes que dependem de busca exaustiva s ˜ao impratic ´aveis e ´e necess ´ario aplicar algoritmos que utilizam soluc¸ ˜oes heur´ısticas para o problema, buscando soluc¸ ˜oes logicamente equivalentes que se-jam eficientes ou at ´e mesmo ´otimas para o circuito requisitado. O Mapeamento Tec-nol ´ogico ´e a ´ultima etapa da s´ıntese l ´ogica e tem extrema import ˆancia no processo, visto que esta etapa ´e respons ´avel por definir a estrutura do circuito e determinar suas caracter´ısticas em termos de atraso, consumo de energia e ´area.

O Mapeamento Tecnol ´ogico determina qual conjunto de elementos l ´ogicos ser ´a utilizado para implementar o circuito requisitado na tecnologia alvo. O foco deste ma-peamento ´e minimizar alguma func¸ ˜ao objetivo do circuito, sendo essa geralmente a ´area, consumo ou atraso. Devido a complexidade do problema, os m ´etodos desen-volvidos buscam a otimizac¸ ˜ao de apenas uma caracter´ıstica do circuito. O MT pode ser dividido basicamente em tr ˆes est ´agios: Decomposic¸ ˜ao, Casamento e Cobertura. A seguir essas etapas ser ˜ao detalhadas demonstrando sua espec´ıfica import ˆancia na abordagem.

2.1.1 Decomposic¸ ˜ao

A decomposic¸ ˜ao ´e a primeira etapa do mapeamento e tem como objetivo transfor-mar a descric¸ ˜ao inicial do circuito em uma estrutura que possa ser manipulada pelas etapas seguintes.

Dada uma descric¸ ˜ao inicial de um circuito, ´e necess ´aria a preparac¸ ˜ao e adaptac¸ ˜ao do mesmo para que este circuito possa ser encaminhado para as etapas de minimizac¸ ˜ao. Essa transformac¸ ˜ao do circuito ´e uma etapa essencial no processo, pois a estrutura de dados escolhida afeta consideravelmente as etapas futuras do ma-peamento e, consequentemente, o tamanho final do circuito. Devido a esses motivos ´e necess ´aria uma representac¸ ˜ao eficiente que permita uma boa manipulac¸ ˜ao de sua estrutura em etapas posteriores.

(17)

utilizadas pode-se citar Diagramas de Decis ˜ao Bin ´aria, ´Arvores e Grafos. Para cir-cuitos que podem ser representados como ´arvores, a soluc¸ ˜ao ´otima para ´area pode ser obtida em tempo polinomial (MARQUES et al., 2007). Infelizmente, a maioria dos circuitos completos n ˜ao podem ser representados por uma ´unica ´arvore, sendo necess ´aria a criac¸ ˜ao de uma floresta, onde cada ´arvore teria sua soluc¸ ˜ao mapeada individualmente, restringindo as soluc¸ ˜oes a m´ınimos locais.

A representac¸ ˜ao mais comum na s´ıntese logica ´e feita atrav ´es de grafos, onde frequentemente ´e utilizada a representac¸ ˜ao com Grafos Ac´ıclicos Direcionados (do ingl ˆes, Directed Acyclic Graph, DAG) (KEUTZER, 1987). Nessa representac¸ ˜ao, cada porta l ´ogica do circuito ´e representada por um v ´ertice e as conex ˜oes(entradas e sa´ıdas de cada porta) s ˜ao representadas pelas arestas. DAGs podem representar o circuito completo e trabalhar com visibilidade global, sendo assim poss´ıvel encontrar a soluc¸ ˜ao ´otima. O maior problema dessa abordagem ´e o custo de mem ´oria e o esforc¸o com-putacional necess ´ario para encontrar as soluc¸ ˜oes, devido a este problema ser consi-derado NP-Completo (MARQUES, 2008). J ´a existem soluc¸ ˜oes com DAGs que mini-mizam o atraso do circuito em tempo polinomial (KUKIMOTO; BRAYTON; SAWKAR, 1998), por ´em o mesmo n ˜ao ´e verdadeiro quando se trata de minimizac¸ ˜ao de ´area.

A Figura 1 mostra como ´e realizada a transformac¸ ˜ao de um circuito para uma representac¸ ˜ao em DAG. A Figura 1(a) mostra o circuito original e a Figura 1(b) ´e a reapresentac¸ ˜ao do mesmo circuito em formato de grafo.

Entre as v ´arias representac¸ ˜oes de DAGs existentes, vale ressaltar uma especializac¸ ˜ao que est ´a bem difundida em diversas ferramentas da s´ıntese l ´ogica, devido a sua simplicidade de representac¸ ˜ao. Esta estrutura, chamada de And Inverter Graph (AIG), consegue representar todo o circuito utilizando apenas portas primitivas (AND e Inversor) e facilita as etapas seguintes de mapeamento. Utilizando l ´ogica boo-leana, ´e poss´ıvel converter uma porta OR em portas AND e Inversores, como mostra a Figura 2. A Figura 3 mostra o resultado da convers ˜ao do circuito mostrado anterior-mente em formato DAG para o formato AIG.

Este trabalho adota a estrutura AIG como base para convers ˜ao dos circuitos para grafos, utilizando a representac¸ ˜ao criada por (AIGER, 2012), chamada de formato AI-GER. Esse modelo ´e bem divulgado no meio acad ˆemico e possui f ´acil interpretac¸ ˜ao, transformando o circuito em uma representac¸ ˜ao textual bin ´aria, onde cada linha re-presenta um v ´ertice ou aresta do AIG. A Figura 4 mostra o circuito are-presentado acima convertido para o formato AIGER, junto com sua representac¸ ˜ao bin ´aria.

A convers ˜ao do circuito para o formato AIGER ´e o ´ultimo passo da etapa de decomposic¸ ˜ao. O AIG ´e ent ˜ao encaminhado para a etapa seguinte do mapeamento, chamada de casamento.

(18)

18

(a) (b)

Figura 1: Transformac¸ ˜ao de um circuito em DAG

2.1.2 Casamento

A etapa de casamento (Matching), ou etapa de identificac¸ ˜ao de padr ˜oes, consiste na busca e identificac¸ ˜ao de padr ˜oes em subgrafos do circuito com elementos da tecnologia alvo. Devido a necessidade de avaliar todas as partes do AIG em busca de padr ˜oes, esta etapa utiliza um alto custo computacional. ´E necess ´ario a utilizac¸ ˜ao de t ´ecnicas otimizadas para a gerac¸ ˜ao e verificac¸ ˜ao destes padr ˜oes.

Casamento utilizando bibliotecas de c ´elulas

Algumas abordagens da etapa de casamento utilizam bibliotecas de c ´elulas. Uma biblioteca de c ´elulas pode ser definida como um conjunto finito de portas l ´ogicas de diferentes tamanhos e topologias que implementam v ´arias func¸ ˜oes booleanas. A Tabela 1 apresenta um exemplo de uma biblioteca de c ´elulas.

Dado uma descric¸ ˜ao de um circuito, o objetivo da etapa de casamento nessa abor-dagem ´e identificar todos os poss´ıveis subgrafos do circuito e associar as c ´elulas da biblioteca especificada com subgrafos do AIG, buscando regi ˜oes onde a l ´ogica ´e equi-valente. A Figura 5 apresenta a etapa de casamento a partir da descric¸ ˜ao de um

(19)

Figura 2: Porta OR convertida em AND e Inversores

(a) (b)

Figura 3: Convers ˜ao DAG ⇒ AIG

circuito AIG e a biblioteca de c ´elulas apresentada na Tabela 1.

A maior dificuldade ao se trabalhar com bibliotecas de c ´elulas est ´a na definic¸ ˜ao do tamanho da biblioteca. Uma biblioteca grande ir ´a trazer resultados melhores, por ´em tamb ´em aumentar ´a o espac¸o de busca de soluc¸ ˜oes da etapa de casamento. Por outro lado uma biblioteca com um n ´umero muito reduzido de c ´elulas pode restringir o espac¸o de busca e retornar soluc¸ ˜oes ineficientes.

Casamento utilizando matrizes de elementos l ´ogicos reconfigur ´aveis

A abordagem para FPGAs (Field Programmable Gate Arrays) difere-se da ante-rior por n ˜ao utilizar bibliotecas de c ´elulas. Essa abordagem conta com o elemento l ´ogico incluso na tecnologia, chamado de Look-Up Table (LUT). A LUT ´e o com-ponente l ´ogico da FPGA respons ´avel por armazenar a tabela verdade de uma func¸ ˜ao.

(20)

20

(a) AIGER-ASCII (b) AIGER-Grafo Figura 4: Representac¸ ˜ao de um AIG no formato AIGER

necess ´arias para implementar o circuito completo. Dessa maneira, ´e poss´ıvel utili-zar algoritmos que enumerem todas as LUTs do circuito para realiutili-zar a cobertura na etapa seguinte. Um dos algoritmos mais utilizados na literatura avaliada ´e chamado de cortes-K ou K-cuts (CONG; C.; Y., 1999). Esse algoritmo tem como objetivo aplicar uma enumerac¸ ˜ao de cortes no grafo, identificando todos os subgrafos de cada nodo. Os cortes s ˜ao limitados pelo n ´umero de entradas “K” de cada c ´elula.

O particionamento e enumerac¸ ˜ao dos cortes ´e extremamente ´util na abordagem para FPGAs, pois ´e poss´ıvel aplicar a l ´ogica de um corte-K diretamente em uma LUT. Assim, ´e poss´ıvel simplificar a heur´ıstica em func¸ ˜ao da minimizac¸ ˜ao do n ´umero total de cortes-K ou LUTs utilizados na fase de cobertura do Mapeamento Tecnol ´ogico. A Figura 6(a) apresenta os padr ˜oes identificados pelo algoritmo de cortes-K de um ´unico nodo (nodo 30) do grafo apresentado anteriormente, enquanto a Figura 6(b) mostra o resultado da execuc¸ ˜ao do algoritmo k-cut no AIG completo com um valor “K” de 3. Os Nodos 2 a 8 n ˜ao possuem cortes porque eles s ˜ao entradas do circuito.

(21)

Tabela 1: Biblioteca de c ´elulas C ´elula Custo S´ımbolo

INV 2 AND2 3 OR2 3 AO22 4 AOI21 5 XOR2 6

Nessa dissertac¸ ˜ao a abordagem escolhida foi com base no mapeamento para FP-GAs de Manohararajah (MANOHARARAJAH; BROWN; VRANESIC, 2006), utilizando o algoritmo de cortes-K para mapear os cortes diretamente para as LUTs da FPGA. O objetivo escolhido para a execuc¸ ˜ao da abordagem foi a minimizac¸ ˜ao da ´area total do circuito gerado.

2.1.3 Cobertura

A ´ultima etapa ´e chamada de cobertura (ou Covering), e t ˆem como objetivo sele-cionar o melhor conjunto de c ´elulas para a implementac¸ ˜ao final do circuito. O objetivo desta etapa ´e encontrar a melhor configurac¸ ˜ao de elementos da tecnologia alvo que atendam a restric¸ ˜ao dada no projeto. Essa restric¸ ˜ao ´e dada por uma func¸ ˜ao objetivo e o objetivo da etapa de cobertura ´e a minimizac¸ ˜ao da mesma.

Ap ´os realizada a etapa de casamento, s ˜ao gerados v ´arias combinac¸ ˜oes de soluc¸ ˜oes poss´ıveis para uma cobertura do circuito. Essas coberturas entretanto pre-cisam ser cuidadosamente selecionadas para tentar cumprir ao m ´aximo a func¸ ˜ao ob-jetivo e encontrar quais c ´elulas far ˜ao parte da soluc¸ ˜ao final.

A etapa de cobertura se torna extremamente importante dentro do processo de mapeamento, pois ´e respons ´avel por encontrar a configurac¸ ˜ao que melhor corres-ponda a func¸ ˜ao custo e que diminua as ´areas de redund ˆancia (overlap) no circuito. Como a alternativa de busca exaustiva da cobertura ´otima ´e impratic ´avel para circuitos grandes, ´e necess ´aria uma heur´ıstica inteligente que selecione a melhor soluc¸ ˜ao

(22)

22

Figura 5: Casamento de um AIG com uma biblioteca de c ´elulas

(a) (b)

(23)

gerada na etapa de casamento.

Cobertura utilizando bibliotecas de c ´elulas

Em uma abordagem de biblioteca de c ´elulas, a cobertura tem como objetivo aplicar as c ´elulas que foram relacionadas a subgrafos do AIG da melhor maneira poss´ıvel. Cada c ´elula da biblioteca possui um custo para ser utilizada na cobertura do AIG. A cobertura ideal para o circuito ´e a cobertura cuja combinac¸ ˜ao de c ´elulas retorne o custo m´ınimo. A Figura 7 apresenta uma poss´ıvel cobertura para o AIG apresentado na Figura 5. Pode-se notar que, para a utilizac¸ ˜ao de algumas c ´elulas da biblioteca, foi necess ´aria a duplicac¸ ˜ao de algumas portas primitivas, como por exemplo a porta AND conectada `as c ´elulas AOI21 e AO22.

Figura 7: Cobertura do circuito utilizando biblioteca de c ´elulas

Cobertura utilizando matrizes de elementos l ´ogicos reconfigur ´aveis

Em uma abordagem para FPGAs, o objetivo da etapa de cobertura ´e buscar na tabela de cortes-K gerada para o AIG quais elementos conseguem aplicar a melhor

(24)

24

cobertura utilizando o menor n ´umero poss´ıvel de cortes-K, visto que estes se relacionam diretamente `as Look-Up Tables da tecnologia em quest ˜ao.

A Figura 8 apresenta algumas poss´ıveis coberturas do circuito exemplo: a Fi-gura 8(a) tenta minimizar o n ´umero de cortes-K do circuito; e a FiFi-gura 8(b) evita ao m ´aximo sobreposic¸ ˜ao do circuito.

(a) (b)

Figura 8: Exemplos de coberturas do AIG

2.2

T ˆempera Simulada

A T ˆempera Simulada (do ingl ˆes, Simulated Annealing) (BERTSIMAS; TSITSIKLIS, 1993; VAN LAARHOVEN; AARTS, 1987) ´e um algoritmo de otimizac¸ ˜ao global utili-zado na otimizac¸ ˜ao de func¸ ˜oes (AARTS; KORST, 1988; GOODSELL; OLSON, 1990; SVERGUN, 1999). Esta t ´ecnica foi inspirada no processo metal ´urgico de resfriamento de metais, onde o material ´e aquecido at ´e altas temperaturas com a intenc¸ ˜ao de agitar suas mol ´eculas. Ap ´os essa agitac¸ ˜ao, o material comec¸a um processo de resfriamento lento e controlado, para que as mol ´eculas possam se organizar de uma maneira mais eficiente, aumentar a durabilidade e reduzir os defeitos do material.

A met ´afora se relaciona de modo que cada configurac¸ ˜ao diferente da soluc¸ ˜ao no espac¸o de busca representa um estado diferente do sistema. Ao aumentar a tempera-tura do sistema, ´e ampliado o espac¸o de busca de soluc¸ ˜oes. `A medida que a

(25)

tempe-ratura ´e reduzida, ou seja, que determinado n ´umero de iterac¸ ˜oes passe, o espac¸o de busca de soluc¸ ˜oes para o problema ´e reduzido, fazendo com que o algoritmo restrinja a busca `a soluc¸ ˜oes mais pr ´oximas ou melhores que a atual. Quanto menor a tem-peratura do sistema, mais o algoritmo tende a apresentar um comportamento guloso. No final da execuc¸ ˜ao, quando um n ´umero de iterac¸ ˜oes foi executado ou a temperatura do ambiente alcanc¸ou valores pr ´oximos `a zero, a t ´ecnica retorna a melhor soluc¸ ˜ao encontrada, que ´e geralmente pr ´oxima da soluc¸ ˜ao ideal do problema.

O principal diferencial dessa abordagem em comparac¸ ˜ao `a abordagens gulosas ´e o fato de que a t ´ecnica permite que sejam aceitas soluc¸ ˜oes consideradas inferiores `a atual. Essa decis ˜ao de escolha ´e feita com base em um c ´alculo probabil´ıstico, que leva em considerac¸ ˜ao o custo da soluc¸ ˜ao atual onde o problema se encontra e o custo da soluc¸ ˜ao inferior.

Al ´em desses fatores, ´e utilizada tamb ´em uma vari ´avel denominada temperatura. Essa vari ´avel ´e diretamente respons ´avel pelo grau de agitac¸ ˜ao da soluc¸ ˜ao e ´e atrav ´es dela que se determina a frequ ˆencia de aceitac¸ ˜ao dessas soluc¸ ˜oes. Quanto maior for a temperatura, maiores s ˜ao as chances de que a soluc¸ ˜ao considerada inferior seja aceita. Por outro lado, quando a temperatura do ambiente ´e reduzida, o algoritmo comec¸a a apresentar uma estrat ´egia gulosa, aceitando somente soluc¸ ˜oes considera-das boas.

2.2.1 Inicializac¸ ˜ao do algoritmo

A t ´ecnica de T ˆempera Simulada comec¸a sua busca a partir de um estado inicial. A forma mais comum de inicializac¸ ˜ao ´e a utilizac¸ ˜ao de um estado inicial aleatorizado, para garantir que o algoritmo n ˜ao ir ´a convergir para soluc¸ ˜oes ´otimas locais. Ap ´os essa inicializac¸ ˜ao, o TS entra em seu lac¸o principal, que ´e respons ´avel por gerar soluc¸ ˜oes vizinhas `a soluc¸ ˜ao atual.

Tomando por exemplo o problema do caixeiro viajante (DORIGO; GAMBARDELLA, 1997; GREFENSTETTE et al., 1985), onde o objetivo do problema ´e a busca por uma rota que passe por toda as cidades do sistema e retorne `a cidade original com um custo m´ınimo, uma soluc¸ ˜ao inicial seria a gerac¸ ˜ao de uma rota aleat ´oria, sem dar import ˆancia `a proximidade de qualquer duas cidades do sistema.

Existem algumas implementac¸ ˜oes do TS que optam por n ˜ao iniciar o algoritmo a partir de uma soluc¸ ˜ao inicial aleat ´oria. Isso se deve ao fato do problema onde o algoritmo est ´a inserido possuir um espac¸o de busca de soluc¸ ˜oes muito grande, e uma inicializac¸ ˜ao aleat ´oria neste tipo de problema pode gerar soluc¸ ˜oes consideradas p ´essimas. Dessa maneira o TS precisa de muitas iterac¸ ˜oes, e consequentemente de muito custo computacional, apenas para conseguir convergir para soluc¸ ˜oes minima-mente aceit ´aveis para o problema.

(26)

26

pode levar o algoritmo a se restringir a m´ınimos locais. No momento ao qual o am-biente encontra-se em altas temperaturas, onde o algoritmo deveria estar buscando escapar dos m´ınimos locais, o mesmo encontra-se buscando melhorar uma soluc¸ ˜ao ineficiente para o problema. Com o passar das iterac¸ ˜oes, a temperatura do ambiente ser ´a reduzida e o algoritmo tende a adotar uma abordagem gulosa, se restringindo a aceitar soluc¸ ˜oes apenas melhores que a atual.

Assim, algumas abordagens realizam a inicializac¸ ˜ao do problema com a aplicac¸ ˜ao de uma soluc¸ ˜ao inicial j ´a semi-otimizada, com o objetivo de direcionar o algoritmo para um espac¸o de soluc¸ ˜oes favor ´aveis e tentar vasculhar o espac¸o de busca ao redor da soluc¸ ˜ao para encontrar uma soluc¸ ˜ao superior. No problema do caixeiro viajante, pode-se por exemplo tentar utilizar alguma heur´ıstica para determinar uma soluc¸ ˜ao inicial mais favor ´avel do que uma rota aleat ´oria (PERTTUNEN, 1994; LIU, 2010). Apesar dessa abordagem se mostrar eficiente e evitar o consumo de custo computacional, ela pode direcionar o algoritmo na direc¸ ˜ao errada, convergindo o TS para um ´otimo local. Assim ´e necess ´ario um estudo cauteloso do tipo de inicializac¸ ˜ao do algoritmo de TS no problema ao qual ele ser ´a aplicado.

2.2.2 Busca de soluc¸ ˜oes vizinhas e probabilidade de aceitac¸ ˜ao

Uma soluc¸ ˜ao considerada “vizinha” ´e uma soluc¸ ˜ao do problema que foi gerada a partir de uma alterac¸ ˜ao na soluc¸ ˜ao atual do problema. No problema do caixeiro via-jante, uma soluc¸ ˜ao vizinha `a uma rota ´e, por exemplo, a troca de ordem de 2 cidades da rota atual. A busca por soluc¸ ˜oes vizinhas ´e fundamental para a otimizac¸ ˜ao do pro-blema, j ´a que a soluc¸ ˜ao final ser ´a resultado de uma sucess ˜ao de trocas do estado inicial at ´e o estado final encontrado.

Uma soluc¸ ˜ao vizinha, no entanto, n ˜ao ´e garantidamente melhor que a soluc¸ ˜ao atual. Se este fosse o caso, um algoritmo com uma abordagem gulosa poderia fa-cilmente encontrar a soluc¸ ˜ao ´otima do problema, simplesmente fazendo trocas de vi-zinho para vivi-zinho at ´e chegar `a um ponto onde nenhum vivi-zinho possui uma soluc¸ ˜ao melhor. Esse ponto encontrado por algoritmos gulosos ´e chamado de ´otimo local, enquanto a melhor soluc¸ ˜ao existente para o problema ´e chamada de ´otimo global.

Em algoritmos como o T ˆempera Simulada, existe a possibilidade de navegac¸ ˜ao para estados vizinhos inferiores ao estado atual. Essa troca serve justamente para que o algoritmo n ˜ao se prenda aos m´ınimos locais encontrados. Cada vez que um novo vizinho ´e criado, ´e utilizado uma avaliac¸ ˜ao de sua soluc¸ ˜ao a partir de uma func¸ ˜ao custo, espec´ıfica para o problema. A partir deste custo, ´e avaliada a variac¸ ˜ao ∆ do sistema, dado pela Equac¸ ˜ao 1. Quando ∆ < 0, isto significa que ocorreu uma reduc¸ ˜ao de energia no problema, implicando que a nova soluc¸ ˜ao encontrada ´e melhor do que a atual. Nesta situac¸ ˜ao, a t ´ecnica aceita a soluc¸ ˜ao gerada e a soluc¸ ˜ao vizinha passa a ser a soluc¸ ˜ao atual.

(27)

Quando s ˜ao encontradas soluc¸ ˜oes consideradas inferiores `a atual, ou seja, ∆ > 0, a t ´ecnica executa um procedimento que determina a probabilidade de aceitar a soluc¸ ˜ao inferior. Esse procedimento ´e geralmente dado pela Equac¸ ˜ao 2. Quando a temperatura do ambiente encontra-se elevada, o valor resultante deste c ´alculo tende a ser alto, possibilitando a troca para estados inferiores com maior frequ ˆencia. `A medida que o algoritmo ´e executado e a temperatura do ambiente decai, o algoritmo comec¸a a rejeitar com mais frequ ˆencia soluc¸ ˜oes inferiores e tende a uma estrat ´egia gulosa.

∆ = custo(estado vizinho) − custo(estado atual)

(1)

e(−∆/T emperatura)

(2) Tipicamente, o algoritmo repete o passo descrito at ´e que um n ´umero m ´aximo de iterac¸ ˜oes seja executado ou quando a temperatura do ambiente chega a um valor muito pr ´oximo de zero. A Figura 9 apresenta um fluxograma do funcionamento tradi-cional do algoritmo de T ˆempera Simulada.

2.3

Considerac¸ ˜

oes Finais

Neste cap´ıtulo foram apresentados os principais conceitos relacionados ao Ma-peamento Tecnol ´ogico, mostrando como ´e feita a divis ˜ao de cada etapa do seu fun-cionamento. Adicionalmente, foi apresentada a t ´ecnica de T ˆempera Simulada, que apresenta resultados favor ´aveis em diversas aplicac¸ ˜oes na literatura. Utilizando esses conhecimentos foi poss´ıvel realizar a integrac¸ ˜ao do TS no Mapeamento Tecnol ´ogico para a criac¸ ˜ao de uma nova abordagem para o problema. No cap´ıtulo seguinte ser ´a apresentado uma revis ˜ao das principais t ´ecnicas de Mapeamento Tecnol ´ogico exis-tentes na literatura.

(28)

28

(29)

Neste cap´ıtulo ser ´a apresentada uma revis ˜ao bibliogr ´afica de alguns dos principais m ´etodos de Mapeamento Tecnol ´ogico da literatura, bem como algumas das aborda-gens que utilizam t ´ecnicas de intelig ˆencia Artificial.

3.1

Dagon

A t ´ecnica de Keutzer (KEUTZER, 1987) utiliza ferramentas de otimizac¸ ˜ao de com-piladores para o casamento de padr ˜oes no Mapeamento Tecnol ´ogico. O processo de realizar o casamento de uma descric¸ ˜ao de grafo independente de tecnologia com uma biblioteca de c ´elulas ´e semelhante a realizar o casamento de uma representac¸ ˜ao em grafo de um programa de computador com os padr ˜oes do conjunto de instruc¸ ˜oes do mesmo.

O circuito ´e inicialmente mapeado para um DAG e em seguida ´e decomposto em uma floresta de ´arvores. Depois desse particionamento, o DAGON faz uma busca em cada uma das ´arvores, encontrando subgrafos logicamente equivalente `as c ´elulas na biblioteca. Para essa busca Keutzer utiliza a ferramenta Twig (TJIANG, 1986), utilizada em geradores de c ´odigo para compiladores de linguagens de programac¸ ˜ao. Ap ´os a ferramenta encontrar os casamentos das c ´elulas, o algoritmo de cobertura procura a melhor combinac¸ ˜ao de c ´elulas para a soluc¸ ˜ao final. A Figura 10 mostra o particionamento do DAG em ´arvores e o fluxo da abordagem de Keutzer.

3.2

WaveFront

O algoritmo WaveFront, proposto por Stok (STOK; IYER; SULLIVAN, 1999) prop ˜oe uma abordagem para otimizac¸ ˜ao de atraso utilizando DAGs. A principal caracter´ıstica desta abordagem ´e a utilizac¸ ˜ao de uma janela, chamada de WaveFront, que tem como objetivo delimitar a ´area do circuito a ser decomposta. Essa janela limita o espac¸o onde ser ´a aplicado o mapeamento a cada momento, evitando consumos elevados de alocac¸ ˜ao de mem ´oria e custo computacional. A maior barreira desta abordagem ´e o tamanho do WaveFront. Uma janela muito pequena far ´a com que o algoritmo se limite

(30)

30

(a) (b)

Figura 10: Particionamento do DAG e Fluxograma do DAGON

a m´ınimos locais, gerando apenas soluc¸ ˜oes sub- ´otimas. Em contrapartida, uma janela muito grande gera problemas de mem ´oria que podem tornar o algoritmo impratic ´avel para circuitos grandes.

3.3

ELIS - Environment for Logic Synthesis

O algoritmo proposto por Correia (CORREIA, 2004), foi incorporado a Ferramenta ELIS. Esse algoritmo conta com o particionamento do DAG em m ´ultiplas ´arvores. Ap ´os o particionamento, a t ´ecnica aplica o Teorema de DeMorgan em cada ´arvore da floresta gerada, iniciando sua aplicac¸ ˜ao na raiz da ´arvore em direc¸ ˜ao `as folhas. A aplicac¸ ˜ao do Teorema de DeMorgan faz com que ocorra um reposicionamento de inversores nos nodos intermedi ´arios do subgrafo, os enviando em direc¸ ˜ao aos nodos folha da ´arvore. A seguir, os nodos com operadores equivalentes s ˜ao agrupados. A estrat ´egia de Correia tenta minimizar os problemas causados por depend ˆencias es-truturais no circuito.

A Figura 11 demonstra como acontece o agrupamento de operadores. Ap ´os o agrupamento, as ´arvores geradas s ˜ao atravessadas atrav ´es de uma Depth-First Se-arch (DFS), realizando operac¸ ˜oes de c ´alculo de custo de cada nodo. Se o custo calculado de um nodo ultrapassa as restric¸ ˜oes do algoritmo de Correia, esse nodo ´e desconectado da ´arvore onde se encontra e se torna uma nova ´arvore. Esse pro-cesso ´e repetido at ´e que todos os nodos da floresta obedec¸am a restric¸ ˜ao. Por fim, a descric¸ ˜ao das ´arvores geradas ´e a descric¸ ˜ao das c ´elulas que ser ˜ao necess ´arias para a implementac¸ ˜ao do circuito final. Embora o algoritmo retorne resultados favor ´aveis, a utilizac¸ ˜ao de ´arvores no mapeamento restringe a visualizac¸ ˜ao do circuito global, o que

(31)

Figura 11: Agrupamento de nodos da ferramenta ELIS

pode gerar apenas soluc¸ ˜oes sub- ´otimas para o circuito.

3.4

VIRMA - Virtual Technology Mapping Tool

A ferramenta desenvolvida por Marques (MARQUES, 2008) apresenta duas abor-dagens para o Mapeamento Tecnol ´ogico baseadas em DAGs. As duas aborabor-dagens propostas combinam o m ´etodo de computac¸ ˜ao Booleana do n ´umero de transistores em s ´erie apresentado por Schneider (SCHNEIDER et al., 2005) com os algoritmos considerados estado-da-arte desenvolvidos por Stok (STOK; IYER; SULLIVAN, 1999) e Mishchenko (MISHCHENKO et al., 2005).

Os algoritmos desenvolvidos buscam reduzir o n ´umero de transistores em s ´erie do caminho mais longo do circuito. Assim, cada c ´elula ´e implementada por uma rede de transistores. Essa rede obedece a uma restric¸ ˜ao que limita o n ´umero m ´aximo de transistores em s ´erie, que s ˜ao calculados de forma Booleana.

A primeira abordagem da ferramenta VIRMA ´e chamada de VIRMA-WF, derivada do algoritmo WaveFront apresentado por Stok (STOK; IYER; SULLIVAN, 1999), en-quanto a segunda abordagem foi adaptada a partir da t ´ecnica apresentada por Mish-chenko (MISHCHENKO et al., 2005) que utiliza o algoritmo de cortes-K desenvolvido por Cong (CONG; C.; Y., 1999), onde cada corte-K ´e equivalente a uma c ´elula da biblioteca.

3.5

Manohararajah

A abordagem de Manohararajah (MANOHARARAJAH; BROWN; VRANESIC, 2006) utiliza a t ´ecnica de cortes-K para mapear os cortes diretamente para as LUTs da FPGA. Ap ´os a enumerac¸ ˜ao de todos os cortes-K de um nodo ´e utilizado um algoritmo que calcula os custos desses cortes, chamado de Area Flow.

(32)

32

Para calcular o custo de cada corte de um nodo, o Area Flow leva em considerac¸ ˜ao o custo da ´area acumulada das entradas do corte at ´e a sa´ıda. Depois que o custo de cada corte-K ´e contabilizado, o algoritmo seleciona os cortes que retornaram os melhores resultados para a cobertura do circuito. Vale notar que a escolha de um melhor corte a partir dessa tabela n ˜ao necessariamente ir ´a produzir uma cobertura

´otima, j ´a que esta ´e uma abordagem gulosa.

3.6

Mishchenko

Com base na t ´ecnica de Area Flow desenvolvida por Manohararajah, Mish-chenko (MISHCHENKO; CHATTERJEE; BRAYTON, 2007) desenvolveu uma t ´ecnica otimizada que associa heur´ısticas ao m ´etodo, buscando evitar esforc¸o computacional desnecess ´ario.

O principal ponto desta t ´ecnica ´e a utilizac¸ ˜ao de uma heur´ıstica para a computac¸ ˜ao dos cortes-K de um grafo. Nas abordagens tradicionais da literatura, o maior esforc¸o computacional ´e dado na enumerac¸ ˜ao de todos os cortes-K do circuito. Essa enumerac¸ ˜ao aumenta consideravelmente `a medida que o valor de k ´e incrementado, dificultando o processo. A abordagem tradicional das t ´ecnicas ´e a utilizac¸ ˜ao de “po-das” na enumerac¸ ˜ao, que podem limitar o espac¸o de soluc¸ ˜oes.

Mischenko tenta n ˜ao efetuar “podas” na enumerac¸ ˜ao mantendo um hist ´orico de cortes do circuito. Assim, o algoritmo desenvolvido consegue evitar cortes redundan-tes no circuito. Com esta t ´ecnica ´e poss´ıvel realizar o mapeamento utilizando cober-turas com cortes-K com um valor de k relativamente grande.

A ferramenta mais atual na ´area s´ıntese l ´ogica ´e chamada de ABC (ABC, 2014). Esta ferramenta possui diversos m ´etodos considerados estado-da-arte na ´area de MT, assim como outros algoritmos de s´ıntese l ´ogica que s ˜ao capaz de realizar balancea-mentos no grafo e otimizac¸ ˜oes independentes de tecnologia. O algoritmo desenvolvido por Mishchenko ´e um dos algoritmos de MT implementados dentro da ferramenta.

O ABC utiliza uma estrutura espec´ıfica de DAGs, denominada And-Inverter Graph (AIG), que decomp ˜oe a l ´ogica do circuito, o reduzindo a operadores primitivos AND e Inversores. Essa estrutura permite que a ferramenta evite problemas de depend ˆencias estruturais e consegue encontrar soluc¸ ˜oes eficientes e r ´apidas para o mapeamento de um circuito e ´e capaz de lidar com circuitos de grande porte.

A ferramenta ABC ´e considerada a ferramenta mais atual e completa na ´area de mapeamento Tecnol ´ogico. Desta forma, o ABC foi utilizado como refer ˆencia neste trabalho para a avaliac¸ ˜ao e comparac¸ ˜ao dos experimentos executados.

(33)

3.7

Intelig ˆencia Artificial no Mapeamento Tecnol ´

ogico

Devido `as t ´ecnicas de otimizac¸ ˜ao utilizando Intelig ˆencia Artificial conseguirem pro-duzir resultados favor ´aveis em diversas ´areas na literatura (GREFENSTETTE et al., 1985; RAHMAT-SAMII; MICHIELSSEN, 1999; POND et al., 2006), a utilizac¸ ˜ao dessas t ´ecnicas no Mapeamento Tecnol ´ogico torna-se uma alternativa interessante. A seguir ser ˜ao mostradas abordagens encontradas na literatura que utilizam IA, mais precisa-mente a t ´ecnica de algoritmos gen ´eticos (GOLDBERG, 1989; MELANIE, 1999; DAVIS, 1991) para a otimizac¸ ˜ao de circuitos integrados.

Algoritmos Gen ´eticos (AG) s ˜ao algoritmos criados com base no conceito de adaptac¸ ˜ao e evoluc¸ ˜ao descritos por Darwin. A teoria de Darwin relatava que um indiv´ıduo evolu´ıa com base na sua adaptac¸ ˜ao ao meio em qual estava inserido. In-div´ıduos mais adaptados ao meio possu´ıam uma maior chance de sobreviv ˆencia, en-quanto os indiv´ıduos menos adaptados tenderiam a desaparecer da populac¸ ˜ao e se extinguir. Essas caracter´ısticas que permitiam a sobreviv ˆencia de um indiv´ıduo se-riam transmitidas aos descendentes dos indiv´ıduos sobreviventes. Esse processo, chamado de Selec¸ ˜ao Natural ´e ´e um dos fundamentos principais dos Algoritmos Gen ´eticos(AGs).

O objetivo dos algoritmos gen ´eticos ´e trabalhar com uma populac¸ ˜ao, onde cada div´ıduo desta populac¸ ˜ao representa uma soluc¸ ˜ao para o problema em quest ˜ao. Os in-div´ıduos dessa soluc¸ ˜ao seriam classificados utilizando-se de uma func¸ ˜ao de avaliac¸ ˜ao, que tem o prop ´osito de classificar quais indiv´ıduos da populac¸ ˜ao s ˜ao mais evolu´ıdos e possuem maior chance de produzirem soluc¸ ˜oes satisfat ´orias atrav ´es de t ´ecnicas de reproduc¸ ˜ao e mutac¸ ˜ao.

3.7.1 GAFPGA - Genetic Algorithm for FPGA Technology Mapping

A t ´ecnica de GAFPGA proposta por Kommu (KOMMU; POMERANZ, 1993), apre-senta um m ´etodo baseado em algoritmos gen ´eticos para o mapeamento de Field Programable Gate Arrays (FPGAs). Essa abordagem utiliza o algoritmo de cortes-K desenvolvido por Cong (CONG; C.; Y., 1999) para realizar a minimizac¸ ˜ao de ´area (n ´umero de LUTs utilizadas na cobertura do circuito).

A abordagem proposta transforma uma cobertura para o problema em duas strings. A primeira string armazena os pontos de segmentac¸ ˜ao das sa´ıdas das portas, en-quanto a segunda string representa a maneira que uma porta l ´ogica foi decomposta no circuito. A partir desses indiv´ıduos, foi aplicado as t ´ecnicas de Crossover e Mutac¸ ˜ao, amplamente conhecidas na ´area de AG. Ap ´os executadas as t ´ecnicas, ´e necess ´aria a validac¸ ˜ao do indiv´ıduo para garantir que o indiv´ıduo gerado seja um indiv´ıduo v ´alido, ou seja, que a l ´ogica do circuito gerado n ˜ao foi alterada. Caso o indiv´ıduo gerado seja inv ´alido, o indiv´ıduo em quest ˜ao passava por uma etapa de alterac¸ ˜ao para ser

(34)

34

transformado em um indiv´ıduo v ´alido.

Devido a complexidade do problema de mapeamento e o tamanho de circuitos de teste, n ˜ao ´e poss´ıvel trabalhar com uma populac¸ ˜ao de indiv´ıduos muito grande. Kommu utilizou uma populac¸ ˜ao de apenas 4 indiv´ıduos na sua abordagem. Apesar do tamanho da populac¸ ˜ao ser pequena, a populac¸ ˜ao conseguiu manter sua diversidade devido `a t ´ecnica de validac¸ ˜ao implementada.

3.7.2 MOGAMAP

O algoritmo MOGAMAP (SOUZA; SILVA-FILHO, 2013), desenvolvido por Sousa, ´e a abordagem mais recente que utiliza Intelig ˆencia Artificial no mapeamento gen ´etico. Essa abordagem tamb ´em busca tratar o problema de Mapeamento Tecnol ´ogico para FPGAs.

A t ´ecnica implementada consiste de 4 etapas. Na primeira etapa ocorre uma an ´alise do AIG do circuito em busca de informac¸ ˜oes de cada nodo do grafo, com a intenc¸ ˜ao de orientar a estimativa de consumo. A enumerac¸ ˜ao de cortes-K do circuito ´e realizada na segunda etapa do algoritmo, enquanto que na terceira etapa, ´e exe-cutada uma modificac¸ ˜ao do algoritmo de Area Flow (MANOHARARAJAH; BROWN; VRANESIC, 2006) de Manohararajah para computar os custos do circuito. Finalmente, na quarta etapa, a cobertura obtida ´e aplicada na populac¸ ˜ao de indiv´ıduos para que possam ser realizadas as operac¸ ˜oes de selec¸ ˜ao, casamento e mutac¸ ˜ao do AG.

3.8

Considerac¸ ˜

oes Finais

Encontrar a melhor soluc¸ ˜ao poss´ıvel para o Mapeamento Tecnol ´ogico ´e um pro-blema de otimizac¸ ˜ao combinat ´oria. A soluc¸ ˜ao ideal para a resoluc¸ ˜ao deste propro-blema ´e realizac¸ ˜ao de uma busca exaustiva em todo o espac¸o de soluc¸ ˜oes existente. Por ´em, devido `a enorme quantidade de soluc¸ ˜oes do problema, essa soluc¸ ˜ao torna-se impra-tic ´avel. ´E necess ´ario ent ˜ao a utilizac¸ ˜ao de t ´ecnicas dependentes de heur´ısticas.

Este cap´ıtulo apresentou os principais algoritmos e ferramentas que tentam mi-nimizar os atributos de circuitos integrados. Enquanto algumas abordagens tentam minimizar o atraso do circuito, as abordagens mais atuais buscam reduzir ao m ´aximo a ´area que esse circuito ir ´a ocupar no projeto final. A Tabela 2 apresenta as princi-pais caracter´ısticas de cada m ´etodo apresentado, mostrando o tipo de descric¸ ˜ao de cada m ´etodo, o foco de minimizac¸ ˜ao a estrat ´egia de cobertura utilizada para atingir os resultados.

Entre as abordagens estudadas, foram encontradas abordagens que utilizam a t ´ecnica de algoritmos gen ´eticos da Intelig ˆencia Artificial na a etapa de Mapeamento Tecnol ´ogico. Essas abordagens, no entanto, j ´a se encontram ultrapassadas e n ˜ao con-seguem superar a ferramenta estado-da-arte. A seguir, ser ´a apresentada a soluc¸ ˜ao

(35)

Tabela 2: Tabela comparativa dos principais m ´etodos de mapeamento

M ´etodo Descric¸ ˜ao Sujeito

Foco de

Minimizac¸ ˜ao Abordagem

DAGON (1987) Arvore´ Atraso Biblioteca

Est ´atica

WaveFront (1999) DAG Atraso Biblioteca

Est ´atica

ELIS (2004) Arvore´ Area´ Biblioteca

Din ˆamica

VIRMA (2008) DAG Atraso Biblioteca

Din ˆamica

MANOHARARAJAH (2006) DAG Area´ FPGA-LUT

MISHCHENKO (2007) DAG Area´ FPGA-LUT

GAFPGA (1993) DAG Area´ FPGA-LUT

MOGAMAP (2013) DAG Area´ FPGA-LUT

Abordagem

Proposta DAG Area´ FPGA-LUT

(36)

4

ABORDAGEM PROPOSTA

Analisando as abordagens vistas no cap´ıtulo anterior, ´e poss´ıvel verificar que embora existam soluc¸ ˜oes que encontrem bons resultados para o Mapeamento Tec-nol ´ogico, ainda existe espac¸o para a descoberta de novas t ´ecnicas e abordagens para o problema. Tendo em vista a necessidade de desenvolvimento de t ´ecnicas de mape-amento mais eficientes para a ferramenta FlexMap e a utilizac¸ ˜ao de t ´ecnicas basea-das em algoritmos aproximativos de otimizac¸ ˜ao, uma abordagem para o MT baseada em T ˆempera Simulada est ´a sendo proposta neste trabalho. A Abordagem, nomeada FlexMap-TS ser ´a apresentada no cap´ıtulo a seguir.

N ˜ao foram encontrados trabalhos na literatura que utilizem a t ´ecnica de T ˆempera Simulada no processo de Mapeamento Tecnol ´ogico. Desta forma, este trabalho prop ˜oe uma nova abordagem para o problema, sendo o objetivo principal a reduc¸ ˜ao do n ´umero de elementos utilizados para implementar o circuito, visando a reduc¸ ˜ao da

´area.

4.1

T ˆempera Simulada aplicada no Mapeamento Tecnol ´

ogico

A abordagem proposta neste trabalho utiliza uma adaptac¸ ˜ao do algoritmo de T ˆempera Simulada no processo de minimizac¸ ˜ao de ´area de circuitos FPGAs no Ma-peamento Tecnol ´ogico. A escolha desta abordagem se deu devido ao fato de que o algoritmo de TS possui um bom desempenho em problemas de otimizac¸ ˜ao onde ´e necess ´ario fugir de m´ınimos locais em busca de uma soluc¸ ˜ao ´otima global.

Devido ao foco do trabalho ser a minimizac¸ ˜ao de circuitos para FPGAs, a func¸ ˜ao custo escolhida para avaliar a efici ˆencia das soluc¸ ˜oes foi o somat ´orio de todos os cortes-K utilizados em uma cobertura do circuito, j ´a que cada corte-K mapeado pode ser diretamente relacionado a uma Look-Up Table (LUT) do FPGA.

4.1.1 Cobertura Inicial e Processo de Limpeza

A execuc¸ ˜ao do algoritmo comec¸a com a leitura do circuito. A etapa de decomposic¸ ˜ao converte o circuito em um grafo AIG no formato AIGER (AIGER, 2012).

(37)

Ap ´os convertido, o algoritmo d ´a in´ıcio a etapa de casamento, onde ´e executado o algo-ritmo de cortes-K (CONG; C.; Y., 1999), que realiza a enumerac¸ ˜ao de todos os cortes de cada nodo para a utilizac¸ ˜ao na etapa de cobertura do problema.

Algoritmo 1: Pseudo-Algoritmo da cobertura inicial Input: aig,cortesK

Output: coberturaInicial

1 coberturaInicial ← new cobertura( ); 2 foreach N odo nodo in aig do

3 if ( nodo ! = input ) then

4 nodoCortes ← retorna cortesK(nodo,cortesK); 5 coberturaNodo ← corte Aleatorio(nodoCortes); 6 coberturaInicial.add(coberturaNodo);

7 end

8 end

A cobertura inicial aleat ´oria pode ser vista no Algoritmo 1. Para cada nodo do AIG que n ˜ao seja uma entrada do circuito, ´e selecionado um corte-K aleatoriamente da tabela de cortes gerada na etapa de casamento. Este corte ´e adicionado `a cober-tura, cobrindo o nodo e possivelmente outros nodos que s ˜ao entradas a esse. Esse processo ´e executado em todos os nodos do AIG, independente da ocorr ˆencia da sobreposic¸ ˜ao de cortes-K na cobertura gerada. A Figura 12(a) mostra um exemplo de gerac¸ ˜ao de uma cobertura inicial aleat ´oria no grafo exemplo.

Depois que todos os nodos foram cobertos ´e realizada uma etapa denominada de limpeza. A limpeza consiste na realizac¸ ˜ao de uma busca em amplitude (do ingl ˆes Breadth First Search, BFS) no AIG, das sa´ıdas do grafo em direc¸ ˜ao `as entradas. Essa busca tem como objetivo eliminar ´areas que tiveram coberturas desnecess ´arias.

O Algoritmo 2 exemplifica o funcionamento da func¸ ˜ao de limpeza. Para cada nodo “Sa´ıda” do AIG, o seu corte-K ´e adicionado na cobertura a ser gerada (linha 6). A seguir, s ˜ao verificadas quais s ˜ao as entradas do corte-K adicionado. Se as entradas desse nodo n ˜ao forem as entradas do circuito, elas s ˜ao adicionadas `a lista de nodos “Sa´ıda”, para ter seu corte-K inserido na cobertura a ser gerada (linha 9). Este pro-cesso ´e repetido at ´e que o algoritmo percorra todos os nodos at ´e a entrada do circuito. A Figura 12(b) mostra a cobertura do estado inicial aleat ´orio depois do processo de limpeza.

(38)

38

Algoritmo 2: Pseudo-Algoritmo func¸ ˜ao de limpeza Input: aig,cortesKcobertura

Output: cobertura

1 bfsSaidas ← new saidas(aig); 2 entradasAIG ← new entradas(aig); 3 while ( bfsSaidas ! = nil ) do 4 nodoAtual ← bfsSaidas.pop();

5 corteNodo ← cortesKCobertura(nodoAtual); 6 cobertura.add(corteNodo);

7 foreach entrada in entradas(corteNodo) do 8 if ( entrada ! = entradasAIG ) then 9 nodoSaidas.add(entrada);

10 end

11 end

12 end

(a) (b)

Figura 12: Gerac¸ ˜ao da cobertura inicial e processo de limpeza

4.1.2 Iterac¸ ˜ao do T ˆempera Simulada

Ap ´os a construc¸ ˜ao da cobertura inicial do AIG, o processo principal do T ˆempera Simulada inicia. A Figura 13 mostra a execuc¸ ˜ao de uma iterac¸ ˜ao do Flexmap-TS. A cada iterac¸ ˜ao do algoritmo, um nodo do grafo ´e escolhido de forma aleat ´oria parar

(39)

rea-lizar a modificac¸ ˜ao do corte-K. Ap ´os selecionado (Figura 13(a)), ´e necess ´ario acessar a tabela de cortes-K com a lista de cortes do nodo em quest ˜ao. O corte substituto ´e escolhido aleatoriamente dessa lista e inserido no grafo (Figura 13(b)), substituindo o corte original.

Depois da substituic¸ ˜ao do corte, ´e necess ´ario refazer toda a cobertura do grafo, pois a substituic¸ ˜ao de um corte pode gerar depend ˆencias e coberturas desne-cess ´arias. Infelizmente essa cobertura n ˜ao pode ser realizada localmente, originando do nodo em quest ˜ao at ´e as entradas do circuito. ´E necess ´ario realizar novamente o processo de limpeza do AIG, aplicando uma busca em amplitude partindo das sa´ıdas do circuito com destino `as entradas. O resultado deste procedimento pode ser visua-lizado na Figura 13(c).

Caso a nova cobertura encontrada seja superior `a cobertura atual, ´e realizada a substituic¸ ˜ao e a soluc¸ ˜ao antiga ´e descartada. Se a cobertura gerada n ˜ao for superior `a atual, o Flexmap-TS realiza um c ´alculo de probabilidade baseado no custo de cada uma das coberturas e na vari ´avel temperatura para decidir se a soluc¸ ˜ao gerada deve ou n ˜ao ser aceita. O c ´alculo dessa probabilidade de aceitac¸ ˜ao ´e geralmente dado pela Equac¸ ˜ao 2, onde o valor de ∆ ´e dado pela Equac¸ ˜ao 1, ambas apresentadas na sec¸ ˜ao 2.2.2. No in´ıcio da execuc¸ ˜ao do algoritmo, quando a vari ´avel temperatura ainda est ´a com valores elevados, a probabilidade de troca de estados ´e relativamente alta, permitindo uma ampla explorac¸ ˜ao do espac¸o de soluc¸ ˜oes do problema.

A cada iterac¸ ˜ao do algoritmo a vari ´avel temperatura ´e reduzida (processo de resfri-amento). Isso faz com que o Flexmap-TS evite escolher as coberturas inferiores com tanta frequ ˆencia. Ao decorrer da execuc¸ ˜ao, a temperatura vai diminuindo e o T ˆempera Simulada comec¸a a convergir apenas para soluc¸ ˜oes superiores, em busca da soluc¸ ˜ao ´otima globalmente. O algoritmo termina quando a temperatura chega a zero ou a um valor muito pr ´oximo de zero.

4.2

Desenvolvimento da Abordagem

A proposta inicial deste trabalho foi o desenvolvimento de uma abordagem para o Mapeamento Tecnol ´ogico que utilizasse o algoritmo de T ˆempera Simulada. Uma vers ˜ao preliminar foi implementada com base no algoritmo cl ´assico de TS, para avaliar se a abordagem de IA era aplic ´avel no processo de Mapeamento Tecnol ´ogico. Essa vers ˜ao preliminar do Flexmap-TS ser ´a referenciada como Cen ´ario 1.

Ap ´os implementado o Cen ´ario 1, foi realizado uma bateria de testes com o obje-tivo de testar sua efici ˆencia. A partir da avaliac¸ ˜ao dos testes e da an ´alise de com-portamento do Cen ´ario 1, foram efetuadas alterac¸ ˜oes no Flexmap-TS para melhor adaptar a implementac¸ ˜ao para o problema do Mapeamento Tecnol ´ogico. A partir des-sas alterac¸ ˜oes foi desenvolvido a vers ˜ao final da t ´ecnica, apresentada neste cap´ıtulo

(40)

40

(a) (b)

(c)

Figura 13: Execuc¸ ˜ao de uma iterac¸ ˜ao da t ´ecnica de T ˆempera Simulada

como Cen ´ario 2. Os cen ´arios e as alterac¸ ˜oes implementadas ser ˜ao apresentados neste ca?´ıtulo.

(41)

4.2.1 Cen ´ario 1

O Cen ´ario 1 foi desenvolvido com base na t ´ecnica convencional de T ˆempera Simu-lada. Uma s ´erie de experimentos permitiram a an ´alise exaustiva do comportamento do algoritmo com diferentes valores em seus par ˆametros, levando a escolha emp´ırica daqueles que obtiveram os melhores resultados. Assim, a velocidade de decaimento da vari ´avel temperatura foi ajustada para possuir um decaimento de 0.1% de tempera-tura por iterac¸ ˜ao do T ˆempera Simulada, permitindo que o Flexmap-TS executasse uma quantidade significante de iterac¸ ˜oes antes de comec¸ar a convergir para uma soluc¸ ˜ao final. O Flexmap-TS ´e executado at ´e que a temperatura se reduza a um valor muito pr ´oximo de zero, finalizando a execuc¸ ˜ao. O Algoritmo 3 mostra um pseudo-algoritmo da execuc¸ ˜ao do Flexmap-TS no Cen ´ario 1, enquanto a Figura 14 apresenta o fluxo-grama do pseudo-algoritmo em quest ˜ao.

Figura 14: Fluxograma do Flexmap-TS no Cen ´ario 1

Com a execuc¸ ˜ao de v ´arias simulac¸ ˜oes no Cen ´ario 1, foi poss´ıvel realizar uma an ´alise profunda do comportamento do Flexmap-TS. O primeiro fator percebido foi que a utilizac¸ ˜ao de um estado inicial aleat ´orio para a inicializac¸ ˜ao do FlexMap-TS gera uma cobertura consideravelmente inferior a qualquer abordagem de mapeamento

(42)

42

Algoritmo 3: Pseudo-Algoritmo do Flexmap-TS no Cen ´ario 1

1 ig ← le AIGER();

2 cortesK ← encontra todos cortesK(aig);

3 coberturaAtual ← solucao Inicial Aleatoria(aig,cortesK); 4 proc Limpeza(coberturaAtual);

5 melhorCobertura ← coberturaAtual; 6 while ( temperatura > valorMinimo ) do 7 nodo ← nodo Aleatorio(aig);

8 novoCorteK ← cortek Aleatorio(nodo,cortesK);

9 coberturaVizinha ← gera Vizinho(coberturaAtual,nodo,novoCorteK); 10 ∆ ←custo(coberturaVizinha) - custo(coberturaAtual);

11 if ( ∆ < 0 ) then

12 coberturaAtual ← coberturaVizinha;

13 if ( coberturaAtual < melhorCobertura ) then 14 melhorCobertura ← coberturaAtual;

15 end

16 else

17 if ( e(−∆/temperatura) <Rand() )then 18 coberturaAtual ← coberturaVizinha;

19 end

20 end

21 temperatura ← temperatura - 0.1%; 22 end

existente, incluindo t ´ecnicas simples e de r ´apida soluc¸ ˜ao. Essa caracter´ıstica, apesar de ser padr ˜ao nos problemas de T ˆempera Simulada, atrasa significantemente o algo-ritmo at ´e que o mesmo consiga convergir para uma cobertura que possa ser consi-derada aplic ´avel no circuito. O maior problema encontrado entretanto, foi durante a execuc¸ ˜ao das iterac¸ ˜oes do FlexMap-TS.

Antes da execuc¸ ˜ao do lac¸o principal do T ˆempera Simulada, ´e necess ´ario o ajuste da vari ´avel temperatura, que al ´em de controlar a probabilidade de troca de estados, ´e respons ´avel tamb ´em pelo n ´umero de iterac¸ ˜oes que o TS vai executar antes de retor-nar a soluc¸ ˜ao final. Assim, quanto maior for o valor da temperatura fixado, maior ser ´a o n ´umero de iterac¸ ˜oes executadas pelo TS. O problema dessa abordagem ´e a falta de conhecimento da grandeza do circuito de entrada. A utilizac¸ ˜ao de um valor limitado de temperatura em um circuito consideravelmente grande acarretar ´a no t ´ermino precoce do algoritmo, retornando uma cobertura muito inferior a considerada ´otima. Em con-trapartida, um valor de temperatura muito elevado aplicado em um circuito pequeno implicar ´a em um custo computacional elevado e desnecess ´ario, tornando o processo longo mesmo para circuitos simples.

Al ´em do problema do ajuste do valor da vari ´avel temperatura, outro ponto desfa-vor ´avel foi encontrado ao analisar essa vari ´avel. Foi notado que estados vizinhos ao

Referências

Documentos relacionados

Para se buscar mais subsídios sobre esse tema, em termos de direito constitucional alemão, ver as lições trazidas na doutrina de Konrad Hesse (1998). Para ele, a garantia

Tal como em Cirurgia Geral, a duração do estágio de Medicina Interna é também ajustada, na medida em que me permitiu adquirir gradualmente mais confiança no

Neste sentido, o presente estudo busca como objetivo principal realizar um revisão de literatura sobre as atuais intervenções realizadas nas empresas com vistas a minimizar os

psicológicos, sociais e ambientais. Assim podemos observar que é de extrema importância a QV e a PS andarem juntas, pois não adianta ter uma meta de promoção de saúde se

Essa revista é organizada pela Sociedade Brasileira de Planejamento Energético (SBPE) e por isso foram selecionados trabalhos que tinham como objetivo tratar a

De maneira sucinta, porém objetiva, este artigo, propôs dirimir possíveis controvérsias à visão do Tratado da Amizade, bem como explicitar relevantes avanços no

Os testes de desequilíbrio de resistência DC dentro de um par e de desequilíbrio de resistência DC entre pares se tornarão uma preocupação ainda maior à medida que mais

O objetivo principal deste estudo de caso era verificar o grau de valorização da medicina popular de plantas entre o próprio povo, tendo por base uma comunidade com diferentes