[Geben Sie hier die Überschrift ein] - MPC
[Geben Sie hier die Überschrift ein] - MPC
[Geben Sie hier die Überschrift ein] - MPC
- TAGS
- mpc.belwue.de
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