Novos Algoritmos para Roteamento de Área Proposta de Tese Aluno: Marcelo Johann Orientador: Ricardo Reis
Algoritmos de Roteamento Algoritmos de Pesquisa de Caminhos Resumo Introdução Algoritmos de Roteamento Algoritmos de Pesquisa de Caminhos Roteamento de Área Roteamento com o Algoritmo LCS* Roteamento com o Algoritmo LEGAL Conclusões e Cronograma
1 Introdução Roteamento é a parte da síntese física responsável por definir as rotas das conexões é uma tarefas complexa; relaciona-se com a tecnologia de fabricação; consiste em muitos problemas distintos; requer uma variedade de algoritmos;
Algoritmos de Roteamento 2 Algoritmos de Roteamento Algoritmos de roteamento solucionam problemas de roteamento. Classificação Algoritmos de Roteamento Genéricos Roteamento de Canal Roteamento Global
2.1 Classificação Classificação de roteamento por objetivos: Roteamento detalhado Roteamento global Roteamento especializado
Classificação de roteamento quanto ao espaço: espaços dedicados: canais e switch boxes; sobre as células, roteamento de área,... general cell standard cells roteamento de área
Classificação dos algoritmos de roteamento quanto ao processamento: incrementais ou seqüenciais: fazem uma conexão a cada vez. Problema: ordenação; integrais ou paralelos: consideram todas as conexões ao mesmo tempo; refinadores ou iterativos: partem de uma solução inicial e repetem a operação de desfazer e refazer conexões até o fim;
Classificação dos algoritmos de roteamento quanto à aplicação: genéricos: podem ser aplicados a muitos problemas diferentes de roteamento; restritos: exploram características ou restrições particulares de um problema para encontrar soluções com maior eficiência; ex: roteamento de canal caixas de conexão roteamento planar ...
2.2 Algoritmos de Roteamento Genéricos Baseados em pesquisa de caminhos: maze-routers [Lee 61], derivados de BFS; Baseados em geometria: line-probe e line-expansion; Algoritmo Hierárquico: baseado em particionamento;
Maze Routers genérico seqüencial muito usado pesquisa BFS em uma grade (Lee 1961) memória ocupada (mínimo 1 bit) tempo de processamento ordenação genérico seqüencial muito usado
2.3 Roteamento de Canal Modelo de canal: espaço entre duas bandas; definição: terminais superiores e inferiores; dificuldade de roteamento: horizontal;
Algoritmos para roteamento de canal: Left-Edge; Dogleg; Y-K; Greedy; YACR2; Hierárquico; Roteamento de switch boxes
O Algoritmo Left-Edge: segmentos que unam todos os pinos das redes ordena segmentos pelo canto esquerdo para cada trilha toma um a um os primeiros segmentos que couberem no final desta 1 5 6 2 3 4 HCG VCG Instância de um canal 1 3 5 2 4 6 1 3 5 2 4 6 1 3 5 2 4 6
O Algoritmo Greedy: Faz o roteamento coluna a coluna, em 5 passos: 1 - conecta novo pino à trilha mais próxima 2 - conecta trilhas que possuem a mesma rede 3 - reduz distância entre redes em mais de 1 trilha 4 - aproxima redes da borda destino (topo ou base) 5 - insere nova trilha para novo terminal 1 5 2 1 3 4 6 1 3 5 2 4 6 3 1 5 3 4 6 2 3
2.5 Roteamento Global Roteamento global para General Cells: espaços são canais ou caixas; ordenação Roteamento global para leiaute em bandas: conexões verticais com feedthroughs; Encontrar árvores para cada rede otimizar árvore e reduzir congestionamento; Roteamento global de área divisão arbitrária gera grafo regular;
Exemplos de roteamento global:
Algoritmos de Pesquisa de Caminhos 3 Algoritmos de Pesquisa de Caminhos Definição do problema; Princípios da pesquisa Algoritmos de pesquisa; Propriedades em pesquisa heurística; Observações sobre pesquisa heurística bidirecional; O algoritmo LCS*
3.1 Definição do Problema Em um grafo localmente finito G=(V,E), encontrar o caminho mais curto entre nodos origem s e destino t - menor custo aditivo. v1 v2 v3 v4 v5 v6 v7 v8 v9 s t
3.2 Princípios da Pesquisa A partir de s, formar uma árvore de pesquisa pela aplicação repetitiva do operador de sucessão Um nodo é expandido quando se aplica a operação de sucessão sobre ele (o nodo se torna fechado) Um nodo é gerado quando é retornado pela operação de sucessão (o nodo se torna aberto) v1 v2 v3 v4 v5 v6 v7 v8 v9 s t
3.3 Algoritmos de Pesquisa Pesquisa em Profundidade (Depth-First) Tão logo um novo nodo é gerado ele é selecionado para ser expandido (LIFO). s t
Pesquisa em Largura (Breadth-First) Primeiro expande todos os nodos a uma mesma distância da origem (FIFO). Pesquisa intermediária destino origem Pesquisa completa
Pesquisa Heurística (A*) Primeiro expande os nodos mais promissores, segundo a função: f(n) = g(n) + h(n) Efeito da eficiência das estimativas origem destino Pesquisa intermediária Pesquisa completa g(n) h(n)
Pesquisa Bidirecional Duas frentes simultâneas de pesquisa nodo de encontro: reconhecido por ambas condição de término: f(n) > min[f(m)] sobreposição Pesquisa da origem Pesquisa do destino destino m origem Nodo de encontro Pesquisa unidirecional
Pesquisa Heurística bidirecional Objetivo: Unir as vantagens de ambas Dificuldades: problema das frentes desencontradas intersecção das pesquisas condição de término Objetivo Suposto problema das frentes desencontradas Bi-BFS Bi-A*
Wave-Shapping (frente-a-frente) Calcula distância até cada nodo da frente oposta f(n) = gs (n) + min[k(n,pi) + gt (pi)] gs(n) gt(pi) k(n,pi ) s n t pi Requer tempo (ou espaço) quadrático para tal
Pesquisa por perímetro Dois processos de pesquisa seguidos o primeiro BFS e o segundo A* ou IDA*, geralmente gs(n) gt(pi) k(n,pi ) s n t pi Primeira pesquisa, até um perímetro determinado Segunda pesquisa, com estimativas frente-a-frente Demonstra potencial dos heurísticos bidirecionais
3.4 Propriedades em pesquisa heurística Admissibilidade (*): custo de n a t h(n) garante menor caminho t n h(n) Menor caminho de n a t Consistência: k(n1,n2) + k(n2,n3) k(n1,n3) só expande nodos com custo mínimo conhecido n1 n2 n3 k(n1,n2) k(n2,n3) k(n1,n3) h(n) = k(n,t)
3.5 Pesquisa Heurística bidirecional problema das frentes desencontradas é insignificante o poder de um algoritmo heurístico admissível não está em quão rápido ele encontra um caminho da origem ao destino, mas em quão rápido ele pode computar valores mais altos de f() para os nodos que gera. a função g() de uma frente corresponde à h() da oposta estimação: a) estática, b) dinâmica, c) frente a frente
3.6 Algoritmo LCS* Lowerbound Cooperative Search estimação dinâmica (resistência e penalidade) estrutura semelhante ao BS* de [Kwa 89] visibilidade: valores estimados em referências visibilidade: conjunto de nodos fechados único “perfeição” e admissibilidade provadas
Estimação dinâmica Resistência (min idea [Kaindl 96]) gt(pi) t pi k(pi ,t) Rt = Min[gt(pi) - k(pi,t)] F(n) = f(n) + Rt Penalidade (max idea [Kaindl 96]) gs(n) gt(pi) s n t pi ht(n) hs(n) ht(pi) Pt = Min[gt*(pi) - k(pi,s)] F(n) = gs(n) + Pt - ht(n)
Resultados preliminares de LCS* Em grafos aleatórios 70 nodos, distância 1000 de 1000, 1 arco por nodo [solúveis] A*s average search nodes = 126156 78306 A* best search nodes = 71576 61016 A* worst search nodes = 180736 95596 LCS* nodes = 77710 59869 Em grafos geométricos 70 nodos, distância 300 de 1000, 10% conexões [+ 1 arco] A*s average nodes = 39095 28406 A* best search nodes = 24438 21428 A* worst search nodes = 53752 35384 LCS* nodes = 38662 34130
Resultados preliminares de LCS* Em grade, admissibilidade completa
Resultados preliminares de LCS* Em grade, admissibilidade relativa
4 grande área livre, sem estrutura terminais e obstáculos arbitrários Roteamento de Área grande área livre, sem estrutura terminais e obstáculos arbitrários decomposição necessária para roteamento detalhado
4.1 Decomposição em caixas de conexão divisão arbitrária do espaço em GRCs assinalamento de pontos de cruzamento (CPA) roteamento detalhado de caixas de conexão
4.2 Roteamento de área sem decomposição Left-Edge ignoraria restrições verticais Greedy não otimizaria conexões verticais Mas um opera linha a linha e o outro coluna a coluna
4.3 O algoritmo LEGAL opera linha por linha, como um Greedy realiza conexões com critério Left-Edge faz roteamento detalhado integral (todas conexões) não avalia a área repetidas vezes como maze routers resultados preliminares indicaram alta eficiência
Roteamento com o Algoritmo LCS* 5 Roteamento com o Algoritmo LCS* Propostas: 5.1 Técnicas de otimização em espaço regular; 5.2 Pesquisa com múltiplos destinos 5.3 Formação de redes 5.4 Modelos de custo 5.5 Outras técnicas de pesquisa 5.6 Pesquisa básica
5.2 Pesquisa com múltiplos destinos Seleção de destino por retângulo envolvente s t1 t2 t1 Seleção de destino mais próximo s t2 s t1 t2 Cálculo de janela de aproximação
5.3 Formação de redes Formação de redes de comprimento mínimo g()=0 Apagando o custo g() nos caminhos já encontrados Driver Formação de redes de caminhos mínimos g()=0 g()=5 g()=9 g()=7 Mantendo o custo g() nos caminhos já encontrados Driver
5.4 Modelos de custo referências e movimentos o que representam os valores: comprimento da conexão; desempenho elétrico da conexão, em função de RC; quantidade de recursos utilizados dificuldade pela presença de obstáculos; congestionamento devido a outras conexões;
Roteamento com o Algoritmo LEGAL 6 Roteamento com o Algoritmo LEGAL Propostas: Definição precisa relacionamento com roteamento global comparações de problemas “genéricos” Adaptação a situações práticas inserção de espaços no roteamento inserção de espaços no posicionamento roteamento em até 4 camadas roteamento com conexões de largura variável
Conclusões e Cronograma 7 Conclusões e Cronograma Conclusões LCS*: bidirecional, heurístico e eficiente aplicação de LCS* a roteamento VLSI redes individuais, ambiente complexo LEGAL: detalhado, integral, eficiente definição e adaptação às aplicações área livre, acomoda melhor as conexões
Cronograma: novembro: testes e implementação de roteador com LCS* infra-estrutura: multi-grade, modelos, estruturas dezembro: continuação janeiro: implementação do LEGAL testes: LCS* vs. LEGAL, LCS* + LEGAL fevereiro: escrita do texto da tese