Figure: Ein Floorplan für einen Chip mit 25 Modulen
Als Anwendungsbeispiel dient ein Optimierungsproblem, welches durch einen
parallelen
Branch & Bound--Algorithmus
gelöst wird.
Derartige Baumsuchverfahren finden in der künstlichen Intelligenz oder
in der kombinatorischen Optimierung zahlreiche Anwendungen und beinhalten
eine natürliche Parallelität.
Die Floorplan-Optimierung ( floorplan sizing) ist ein Problem aus
dem Bereich des
VLSI -Designs.
Hier sind die Bausteine eines Chips auf einem Layout mit minimaler
Fläche anzuordnen,
wobei die relativen Positionen der einzelnen Module in der vorangehenden
Plazierungs-Phase
schon festgelegt wurden.
Für die Module existieren mehrere alternative Ausprägungen mit
unterschiedlichen Ausmaßen, gesucht ist nun eine Kombination dieser
verschiedenen Alternativen, so daß sich ein rechteckiges Layout mit
minimaler Fläche ergibt.
Abbildung 3 zeigt einen Floorplan, der jedem der 25 Module eines Chips
einen Raum zuweist und somit vorschreibt, welche Blöcke in dem Layout
benachbart sind.
Existieren für jedes Modul im Schnitt vier unterschiedliche
Implementierungen, so gibt es
insgesamt verschiedene Layouts.
Diese können in einem Baum sukzessive erzeugt werden.
Abbildung 4 zeigt die oberen Ebenen eines möglichen Suchbaums für den
Floorplan aus Abbildung 3.
Jeder innere Knoten beschreibt ein Teil-Layout, die Blätter des
vollständigen Suchbaums
beschreiben alle möglichen Layouts für den gesamten Chip.
Ein Branch & Bound--Algorithmus
durchsucht nun systematisch, ausgehend
von der Wurzel, diesen Baum.
Dabei wird die Suche an einer Stelle dynamisch abgebrochen und an einer
anderen Stelle fortgesetzt, wenn anhand einer Heuristik abzusehen ist,
daß aus dem bislang erzeugten Teil-Layout keine gute Gesamtlösung
entstehen kann.
Figure: Die oberen Ebenen eines Suchbaums für das Floorplan-Optimierungsproblem