4 research outputs found

    Program Transformations for Light-Weight CPU Accounting and Control in the Java Virtual Machine - A Systematic Review

    Get PDF
    This article constitutes a thorough presentation of an original scheme for portable CPU accounting and control in Java, which is based on program transformation techniques at the bytecode level and can be used with every standard Java Virtual Machine. In our approach applications, middleware, and even the standard Java runtime libraries (i.e., the Java Development Kit) are modified in a fully portable way, in order to expose details regarding the execution of threads. These transformations however incur a certain overhead at runtime. Further contributions of this article are the systematic review of the origin of such overheads and the description of a new static path prediction scheme targeted at reducing them

    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

    Improving Static Branch Prediction in a Compiler

    No full text
    An ILP (Instruction-Level Parallelism) compiler uses aggressive optimizations to reduce a program's running time. These optimizations have been shown to be effective when profile information is available. Unfortunately, users are not always willing or able to profile their programs. A method of overcoming this issue is for an ILP compiler to statically infer the information normally obtained from profiling. This paper investigates one aspect of this inference: the static prediction of conditional-branch direction. The goals of this work are to utilize the source-level information available in a compiler when performing static branch prediction, to identify static-branch-prediction cases in which there is a high confidence that a branch will go in one direction at run time, to gain an intuitive understanding into the reasons why the static-branch-prediction heuristics are effective, and ultimately to improve the accuracy of the static branch prediction. The effectiveness of the static-b..
    corecore