h1

h2

h3

h4

h5
h6
http://join2-wiki.gsi.de/foswiki/pub/Main/Artwork/join2_logo100x88.png

Automatic identification and utilization of custom instructions for network processors = Automatisierte Identifizierung und Verwendung anwendungsspezifischer Instruktionen für Netzwerkprozessoren



Verantwortlichkeitsangabevorgelegt von Hanno Scharwächter

ImpressumAachen : Publikationsserver der RWTH Aachen University 2016

UmfangXI, 181 S.: graph Darst.


Aachen, Techn. Hochsch., Diss., 2015

Veröffentlicht auf dem Publikationsserver der RWTH Aachen University 2016


Genehmigende Fakultät
Fak06

Hauptberichter/Gutachter
;

Tag der mündlichen Prüfung/Habilitation
2015-05-21

Online
URN: urn:nbn:de:hbz:82-rwth-2015-040657
URL: https://publications.rwth-aachen.de/record/481176/files/481176.pdf
URL: https://publications.rwth-aachen.de/record/481176/files/481176.pdf?subformat=pdfa

Einrichtungen

  1. Lehrstuhl für Software für Systeme auf Silizium (611910)

Inhaltliche Beschreibung (Schlagwörter)
Elektrotechnik, Elektronik (frei) ; compiler (frei) ; embedded systems (frei) ; eingebettete Systeme (frei) ; instruction set extension (frei) ; Instruktionssatzerweiterung (frei) ; design-automation (frei) ; Design-Automatisierung (frei)

Thematische Einordnung (Klassifikation)
DDC: 621.3

Kurzfassung
Gordon E. Moore beschrieb 1965 einen wegweisenden Trend f¨ur die Chipentwicklung: Er sagte voraus, dass sich die Anzahl der verwendeten Schaltkreise pro Flächeneinheit für einen Prozessor alle zwei Jahre verdoppeln würde. Dieser Trend hat sich bis heute bewahrheitet und ermöglicht seitdem dramatische Veränderungen des Prozessorentwurfs. Insbesondere im Bereich der Protokollverarbeitung (TCP/IP/Ethernet) wurde die Entwicklung neuer Prozessoren durch enorme Zuwachsraten an Internet-Nutzern und innovativer Anwendungen wie Voice-over-IP, Internet Telefonie u.a. (die heute längst Standard sind) befeuert. Aus dieser Situation heraus entstand die Vision eines Netzwerkprozessors (NPU), welcher die effiziente Verarbeitung hoher Datenvolumen mit der Flexibilität zur Entwicklung neuer Algorithmen verbindet. Der Spagat zwischen diesen unterschiedlichen Anforderungen bewirkt zeitaufwändige Entwurfszyklen, so dass automatisierte Entwurfsmethoden und entsprechende Werkzeuge zwingend notwendig sind, um mit vertretbarem Aufwand ein NPU-System zu entwerfen. Compiler-in-the-Loop Architektur-Exploration wird heutzutage als der richtige Weg angesehen dieses Problem zu lösen. In diesem Zusammenhang spielen automatisierte Compiler-Erzeugung und Instruktionssatz-Erweiterung (ISE) wichtige Rollen. Beide Techniken ermöglichen Prozessordesignern den Instruktionssatz (ISA) einer NPU an die Anforderungen von Netzwerkanwendungen komfortabel anzupassen und darüber hinaus ein entsprechendes Programmiermodell durch einen Compiler für Anwender bereitzustellen. Diese Arbeit präsentiert Fallstudien zu Architektur-Exploration und Compiler-Optimierung in Verbindung mit ISE für NPUs. Motiviert durch die gewonnenen Erkenntnisse wird ein Rahmenwerk zur automatisierten Compiler/Architektur Co-Exploration entwickelt. Der Vorteil dieses Rahmenwerks begründet sich auf der Möglichkeit durch Analyse von C-Anwendungen eine optimierte ISA und einen passenden Compiler zu entwickeln und dadurch den Entwurf programmierbarer Prozessorarchitekturen für diese Anwendungen zu unterstützen. Gleichzeitig wird der Ablauf der Architektur-Exploration beschleunigt, da zeiaufwändige Analysen der Anwendungen und Retargierung des Compilers effektiv unterstützt werden. Das Rahmenwerk basiert auf zwei Werkzeugen: Einer Analyse von CAnwendungen zur Identifizierung von Instruktionen für eine ISE sowie eines Code-Generators zur Erzeugung eines Algorithmus, der, eingebettet in einen Compiler, die automatische Verwendung der Instruktionen durch einen Compiler ermöglicht. Die Analyse bezieht vollständige Anwendungen ein und ist nicht auf einzelne Abschnitte der Anwendungen beschränkt. Durch ihre polynomische Laufzeitkomplexität können mit diesem Ansatz auch komplexe oder mehrere Anwendungen verarbeitet werden. Das Ergebnis dieses Verfahrens ist eine Beschreibung der Instruktionen in einer Form, wie sie der Code-Generator verarbeiten kann. Basierend auf dieser Beschreibung erzeugt der Code-Generator einen Algorithmus zur Code-Selektion. Diese besitzt lineare Laufzeitkomplexität und kann beliebig komplexe Instruktionen erfassen; insbesondere Instruktionen, welche mehrere Ergebnisse gleichzeitig berechnen. Das gesamte Rahmenwerk ist eingebettet in eine industrieerprobte Methodik zur Architektur-Exploration. Diese erlaubt die iterative Entwicklung eines Prozessors basierend auf einem Modell in Architekturbeschreibungssprache. Während der Exploration können relevante Werkzeuge wie Assembler, Linker oder Simulator aus dem Modell heraus erzeugt werden. So ergibt sich ein verbesserter Design-Ablauf, wobei der Designer in einem einzigen Entwurfszyklus einen optimierten Satz Instruktionen und einen dazu passenden Compiler erhält. In nachfolgenden Zyklen übernimmt er die Instruktionen in sein Prozessormodell und evaluiert die Ver¨anderungen anhand der verarbeiteten Anwendungen mit Hilfe des neuen Compilers und des generierten Simulators.

1965, Gordon E. Moore has described a groundbreaking trend for the design of processors: he predicted a doubling of the number of circuit components fabricated on a single chip every two years. This trend has proven itself to be true and has enabled spectacular rates of progress in semiconductor technology since then. Particularly in the field of protocol processing, system design has been driven by the continuously growing number of Internet users and traffic accompanying the rise of new network protocols like Voice-over-IP, VPN or Internet TV (which have long become standards). This development has led to the rise of a new type of Application-Specific Instruction Set Processor (ASIP) especially designed to support high-level programmability of network protocols and efficient packet processing at the same time, called Network Processing Unit (NPU). Designing such systems under increasing time-to-market pressure imposes clear requirements for systematic and, moreover, automated design methodologies for building NPUs, so that time and effort to design a system containing both hardware and software remains acceptable. Compiler-in-the-Loop (CiL) architecture exploration is widely accepted as being the right track for fast development of-ASIPs like NPUs. In this context, automatic application-specific Instruction Set Extension (ISE) and code generation by a compiler have received huge attention in the past. Together, both techniques enable processor designers to quickly adapt a processor’s Instruction Set Architecture (ISA) to the needs of a certain set of applications and to provide an appropriate high-level programming model. This manuscript presents a detailed analysis of architecture exploration for NPUs. It develops a scalable framework for automatic compiler/architecture co-exploration, targeting the domain of network applications. First, the framework is based on a novel code-selection technique for the compiler and an appropriate code-generator for this technique. The code-generator takes a description of the ISA as input and produces a set of C-functions allowing for comfortable implementation of the aforementioned code-selection. The code-selection algorithm features linear runtime complexity and – in contrast to traditional approaches of this type – is capable of handling arbitrary complex instructions; especially inherent parallel instructions computing multiple results at the same time. Second, the framework is based on a novel methodology for automatic identification of possible ISEs. It identifies new instructions through the analysis of complete applications and is not restricted to selected hotspots of these applications. Its polynomial runtime complexity enables the analysis of (a set of) complex real-world applications. It results in a grammar description of the most efficient hardware instructions, which can in turn be processed by the aforementioned code-generator. By embedding this tool flow in an industry-proven architecture exploration framework, a methodology for simultaneous compiler/architecture co-exploration is derived, which allows for iterative development of a processor model, written in Architecture Description Language (ADL). During architecture exploration, relevant tools like assembler, linker and simulator can be generated based on the processor model. Thereby an improved design flow is created that enables designers to retrieve an optimized ISA and appropriate compiler in a single iteration. In subsequent iterations, he integrates the instructions in the processor model and evaluates the effects on the target applications with the help of the retargeted compiler and generated simulator.

OpenAccess:
Download fulltext PDF Download fulltext PDF (PDFA)
(additional files)

Dokumenttyp
Dissertation / PhD Thesis

Format
online, print

Sprache
English

Externe Identnummern
HBZ: HT018744382

Interne Identnummern
RWTH-2015-04065
Datensatz-ID: 481176

Beteiligte Länder
Germany

 GO


OpenAccess

QR Code for this record

The record appears in these collections:
Document types > Theses > Ph.D. Theses
Faculty of Electrical Engineering and Information Technology (Fac.6)
Publication server / Open Access
Public records
Publications database
611910

 Record created 2015-08-13, last modified 2023-04-08