4 research outputs found

    An integrated soft- and hard-programmable multithreaded architecture

    Get PDF

    COMRADE: A High Level Compiler for Adaptive Computer Systems

    Get PDF
    Rechenleistung wird klassisch durch schnellere oder zusätzliche Mikroprozessoren gesteigert. Dagegen lagert ein Adaptives Computersystem (ACS) rechenintensive Teile in rekonfigurierbare Hardware (HW) aus. Da die Programmerstellung für ein ACS von Hand Wissen über den Entwurf von Software (SW) und Hardware vom Entwickler verlangt und viel Zeit verbraucht, wurde der Compiler COMRADE entwickelt. COMRADE partitioniert einen C-Quelltext in einen SW-Teil und eine HW-Konfiguration für ein ACS. Dabei werden automatisch Regionen für eine HW-Beschleunigung bestimmt und HW-Konfiguration und SW zu einem lauffähigen Ganzen zusammengesetzt. COMRADE kann durch neue HW-Modulbibliotheken und Konfigurationsdateien leicht an neue Zielarchitekturen angepasst werden. Er unterstützt den vollen C-Sprachumfang. Eine verbesserte HW-SW-Partitionierung vergrößert den synthetisierten HW-Anteil. Heuristiken in COMRADE reduzieren die Nachteile der hohen Rekonfigurationszeiten von aktuellen Logikbausteinen durch Zusammenfassen mehrerer HW-Teile zu Konfigurationen. Ein Großteil der während der Programmausführung auf einem ACS sonst nötigen Konfigurationen kann so eingespart werden. Die Steuerung der HW übernimmt eine neu entwickelte Datenflussmaschine. Neben Hardware-Pipelines werden spekulative Berechnungen unterstützt. Aus mehreren Ergebnissen wird das richtige für die weitere Berechnung ausgewählt. Durch das neuartige Ausführungsmodell ergibt sich gegenüber herkömmlichen spekulativen Mechanismen ein Laufzeitgewinn. Die Anwendung verschiedener Optimierungen auf Hochsprachenebene zeigte wesentlichen Einfluss auf die Größe und die Geschwindigkeit der erzeugten HW. Nachgewiesen wurden der Vorteil jeder einzelnen Optimierung sowie die höhere Effektivität der Kombination von Optimierungen. Durch die in COMRADE implementierten Optimierungen konnten der HW-Verbrauch wie auch die Anzahl der Speicherzugriffe wesentlich reduziert werden.Traditionally, computer performance is increased by using faster or additional processors. Adaptive computers (AC) accelerate applications by executing software (SW) on reconfigurable hardware. The programming of an AC generally requires experience beyond conventional software programming, namely detailed knowledge in hardware (HW) architecture and design. COMRADE helps the programmer to develop program for ACs. It partitions C source code into HW configurations and SW. Automatically, HW regions for acceleration are determined, and these HW configurations are linked to the SW to create the program for the AC. COMRADE is easily adaptable to new target architectures with help of new HW module libraries and configuration files. It supports dusty deck C source code. Improved HW/SW partitioning increases the synthesizable HW part of translated application. Heuristics reduce disadvantages of high reconfiguration times of actual reconfigurable logic chips. It combines several HW configurations to one configuration. Thus, many configurations during the program execution are not needed anymore. The HW execution is controlled by a new developed data flow machine. Besides HW pipelining, speculative executions are supported. The right result is chosen from several in parallel calculated values. Because of the new execution model, the runtime of calculations in HW is increased compared to traditional data flow machines. Several optimizations are included in COMRADE. They achieve better performance and decreased resource requirements of the created HW. Besides advantages of single optimizations, the combination of optimizations showed higher efficiency than every single optimization

    Superblock formation using static program analysis

    No full text
    Compile-time code transformations which expose instruction-level parallelism (ILP) typically take into account the constraints imposed byallexecution scenarios in the program. However, there areaddi tional opportunities to increase ILP along some execution sequences if the constraints from alternative execution sequences can be ignored. Traditionally, pro le information has been used to identify important execution sequences for aggressive compiler optimization and scheduling. This paper presents a set of static program analysis heuristics used in the IMPACT compiler to identify execution sequences for aggressive optimization. We show that the static program analysis heuristics identify execution sequences without hazardous conditions that tend to prohibit compiler optimizations. As a result, the static program analysis approach often achieves optimization results comparable to pro le information in spite of its inferior branch prediction accuracies. This observation makes a strong case for using static program analysis with or without pro le information to facilitate aggressive compiler optimization and scheduling
    corecore