27.01.2013 Aufrufe

[Geben Sie hier die Überschrift ein] - MPC

[Geben Sie hier die Überschrift ein] - MPC

[Geben Sie hier die Überschrift ein] - MPC

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>MPC</strong>-WORKSHOP JULI 2012<br />

Soft-Core-Prozessor mit Multithreading<br />

für DSP-Anwendungen<br />

Zusammenfassung—Die Komplexität der heutigen<br />

FPGAs ermöglicht es, Soft-Core-Prozessoren mit<br />

applikationsspezifischen Merkmalen effizient zu<br />

implementieren. Eine der interessantesten Anwendungen<br />

sind spezielle Prozessoren für digitale Signalverarbeitung.<br />

Solche Anwendungen zeichnen<br />

sich oft durch <strong>ein</strong>en sehr hohen Datendurchsatz<br />

aus, der mit fließbandorganisierten Prozessoren<br />

effizient verarbeitet werden kann. Die Fließbandorganisation<br />

<strong>ein</strong>es Prozessors bringt allerdings<br />

wegen Daten- und Steuerflussabhängigkeiten <strong>ein</strong>ige<br />

Probleme mit sich, <strong>die</strong> mit steigender Anzahl<br />

der Fließbandstufen immer schwerwiegender werden.<br />

Eine andere, interessante Technik ist es, <strong>ein</strong>e<br />

Applikation in <strong>ein</strong>zelne Tasks (Threads, Befehlsströme)<br />

zu zerlegen, und <strong>die</strong>se überlappend ausführen<br />

zu lassen. Dadurch lassen sich Fließbandhemmnisse<br />

zwar eliminieren, allerdings auf Kosten<br />

<strong>ein</strong>es höheren Hardwareaufwandes für <strong>die</strong> Verwaltung<br />

der <strong>ein</strong>zelnen Befehlsströme. Der folgende<br />

Beitrag gibt <strong>ein</strong>en Überblick über <strong>die</strong> Synthese<br />

<strong>ein</strong>es skalierbaren Soft-Core-Prozessors mit Multithreading-Eigenschaften<br />

für DSP-Anwendungen<br />

auf <strong>ein</strong>em Spartan-FPGA.<br />

Schlüsselwörter—Multithreading, Spartan, Virtex,<br />

FPGA, skalierbarer Soft-Core-Prozessor, digitale<br />

Signalverarbeitung.<br />

I. EINLEITUNG<br />

Der in <strong>die</strong>sem Beitrag vorgestellte Soft-Core-<br />

Prozessor ist das Resultat <strong>ein</strong>er Masterarbeit [1], <strong>die</strong><br />

bei der Enclustra GmbH in Zürich, Schweiz, in Zusammenarbeit<br />

mit der HTWG Konstanz durchgeführt<br />

wurde. Das Ziel der Masterarbeit war es, nach Vorgaben<br />

von Enclustra GmbH [2] <strong>ein</strong>en skalierbaren Soft-<br />

Core-Prozessor mit Multithreading-Merkmalen für<br />

rechenintensive DSP-Algorithmen wie FIR-Filter,<br />

DFT/FFT und Matrix-Multiplikationen unter möglichst<br />

optimaler Ausnutzung der FPGA-Ressourcen zu<br />

realisieren. Der gesamte Vorgang sollte <strong>die</strong> Entwurfs-,<br />

Implementierungs-, Simulations-, Test- und Synthesephasen<br />

umfassen.<br />

Ch. Kielmann, kielmann@htwg-konstanz.de, ist Master-Student an<br />

der HTWG-Konstanz, I. Schoppa, ischoppa@htwg-konstanz.de, ist<br />

Mitglied der HTWG Konstanz, Brauneggerstr. 55, 78462 Kon-<br />

Christian Kielmann, Irenäus Schoppa<br />

Im Kern ist der Soft-Core-Prozessor <strong>ein</strong> 32-Bit-<br />

Prozessor in <strong>ein</strong>er 3-Adress-Architektur mit <strong>ein</strong>em für<br />

RISC-Prozessoren typischen reduzierten Befehlssatz,<br />

der um DSP-spezifische Befehle erweitert ist, mit<br />

mehrstufiger Pipeline im Daten- und Steuerpfad, sowie<br />

mit Multithreading-Eigenschaften. Die skalierbare<br />

Architektur des Soft-Core-Prozessors sollte so realisiert<br />

werden, dass <strong>ein</strong>ige Einheiten wie <strong>die</strong> ALU oder<br />

<strong>die</strong> MAC-Einheit leicht austauschbar sind, um so dem<br />

Anwender <strong>ein</strong>e <strong>ein</strong>fache Anpassbarkeit des Soft-Core-<br />

Prozessors an spezialisierte Anwendungen zu ermöglichen.<br />

Der Soft-Core-Prozessor unterstützt drei verschiedene<br />

Adressierungsmodi Linear, Modulo oder Bit-<br />

Reverse, wobei <strong>die</strong> beiden letzten besonders häufig in<br />

DSP-Algorithmen vorkommen. Aus Effizienzgründen<br />

erfolgt <strong>die</strong> Generierung der Adressen für Operanden in<br />

drei unabhängig von<strong>ein</strong>ander arbeitenden AGUs. Das<br />

Datenformat des Prozessors ist auf <strong>die</strong> Verarbeitung<br />

vorzeichenbehafteter, ganzzahliger 32-bit-Operanden<br />

ausgelegt. Zu weiteren wichtigen Merkmalen des Soft-<br />

Core-Prozessors gehören <strong>die</strong> direkt in Hardware realisierte<br />

Unterstützung bei der Ausführung von Schleifen<br />

(Zero-Overhead-Loops), effiziente Realisierung bedingter<br />

und unbedingter Steuerflussbefehle und Unterprogrammaufrufe<br />

sowie laufzeitoptimierte Interrupts-Behandlung.<br />

Der Soft-Core-Prozessor wurde so<br />

entworfen, dass s<strong>ein</strong>e Performance sowohl durch <strong>die</strong><br />

Anzahl der ausführbaren Threads als auch über <strong>die</strong><br />

Merkmale der ALU skalierbar ist. Die Implementierung<br />

des Prozessors erfolgte nach Vorgaben und<br />

Richtlinien von Enclustra GmbH in der Hardwarebeschreibungssprache<br />

VHDL, und zwar auf der Grundlage<br />

der Zwei-Prozess-Methode [3]. Die Struktur des<br />

Soft-Core-Prozessor wurde bei der Implementierung<br />

auf sieben Entities aufgeteilt: Top-level, Program<br />

Flow Unit (PFU), Instruction Decode Unit (IDU),<br />

Address Generation Unit (AGU), Stack Control Unit<br />

(SCU), ALU und Quad-Port-Speicher. Die gesamte<br />

Implementierung umfasst ca. 3000 Lines of Code.<br />

II. QUAD-PORT-SPEICHER<br />

Die Speicherarchitektur ist <strong>ein</strong>es der wichtigsten<br />

Merkmale <strong>ein</strong>es Prozessors und hat <strong>ein</strong>en hohen Einfluss<br />

auf s<strong>ein</strong>e Leistungsfähigkeit. Hinsichtlich der<br />

Lage der Operanden wird in der Literatur (z.B. [4],<br />

[5]) zwischen drei Architekturvarianten unterschieden:<br />

stanz. 47

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!