Fachbeitrag von Infineon
Technologies AG, München
PR&E.-Art-Nr: 37/2000
Datum: Dezember 2000
Sprache(n): deutsch + englisch
Autor(en) Gabriela Born
Umfang: ca. 14.400 Zeichen
Zielgruppe: Elektronik-Entwickler,
Embedded-Entwickler
Platzierung: Elektronik, Ausgabe 02/2001
((Headline))
Die Mikrocontroller/DSP-Kombination C166S V2 von Infineon – Ein neuer Star im 16-Bit-Segment
((Autor))
Gabriela
Born, Infineon Technologies AG, München
((Fliesstext))
Im
Rahmen seiner bekannten C166-Familie hat Infineon einen 16-Bit
Mikrocontroller-Core der neuesten Generation eingeführt. Hinsichtlich der
Verarbeitungsleistung und der DSP-Funktionen stellt der C166S V2 einen
erheblichen Fortschritt dar. Mit seiner Single-Cycle-Engine, seiner
verbesserten MAC-Einheit und einer Taktfrequenz bis zu 200 MHz erreicht er
mehr als die doppelte Verarbeitungsleistung des bisher schnellsten
C166-basierten Controllers (C166S V1) mit gleicher Taktfrequenz. Durch die
völlige Kompatibilität des Befehlssatzes zu den C166-Cores wird der Umstieg auf
die bislang schnellste 16-Bit-Engine erheblich vereinfacht.
Die
Architektur bietet sich besonders für echtzeitfähige Embedded-Systems-Anwendungen
an, die einerseits ein hohes Maß an Leistungsfähigkeit und
Signalverarbeitungs-Funktionalität verlangen, andererseits aber ein eng
gestecktes Kosten‑ und Verlustleistungs-Budget einhalten müssen. Beispiele sind Anwendungen aus dem Computer Peripherals, sowie
Consumer und Automotive Bereich.
Der
C166S V2 befindet sich zur Zeit in der Design-in-Phase für eine Reihe von Embedded-Systems-Anwendungen. Mit dem
vollständig synthetisierbaren Core lassen sich System-on-a-Chip-Projekte auf
einfache Weise verwirklichen. Der Core wird gegenwärtig mit der 0,18 µm
Prozesstechnologie von Infineon implementiert. Die große Auswahl an Peripherie Funktionsmodulen ermöglicht eine zügige Anpassung an
individuelle Anforderungen, so dass der Core umgehend für den jeweiligen Anwendungsfall
verfügbar ist.
((ZÜ))
Verbesserte
Architektur bei voller Kompatibilität zu
C166-Derivaten
((FT))
Mit
seinen zahlreichen Verbesserungen und Optimierungen übertrifft der
C166S V2 die Leistungsfähigkeit seiner Vorgänger erheblich. Während die Applikation
einerseits von der höheren Verarbeitungsleistung und der deutlich gesenkten
Leistungsaufnahme des C166S V2 profitiert, ist andererseits die
uneingeschränkte Kompatibilität des Codes zu anderen C166-Derivaten
gewährleistet, da die gesamte Systemarchitektur in vollem Umfang auf der
etablierten C166-Familie von Infineon basiert. Mit Ausnahme des
Initialisierungscodes für den Mikrocontroller sind existierende Routinen in
vollem Umfang wiederverwendbar. Diese Kompatibilität gewährleistet extrem kurze
Markteinführungszeiten bei der Aufrüstung eines Systems auf den C166S V2.
Verarbeitungsleistung
Der
C166S V2 enthält eine fünfstufige Execution Pipeline mit einer
zusätzlichen zweistufigen Instruction Prefetch Pipeline mit Prediction, die im Falle einer unrichtig vorhergesagten
Befehlssequenz umgangen werden kann. Die als Load/Store-Architektur
realisierte, leistungsstarke Verarbeitungseinheit des C166S V2 ermöglicht
die Ausführung nahezu aller Befehle in einem einzigen Taktzyklus. Dank der
weiter entwickelten Pipeline lassen sich Befehle, deren Verarbeitung in
früheren C166-Controllern zwei Taktzyklen erforderte, nunmehr in einem einzigen
Taktzyklus ausführen. Bei gleicher Taktfrequenz erreicht der C166S V2
daher die doppelte Verarbeitungsleistung seines
Vorgängers. Mit seiner maximalen Taktfrequenz von 200 MHz und
seiner Performance von 200 MIPS stellt der C166S V2 mehr als nur ein
leistungsgesteigertes Upgrade für existierende C166-Applikationen dar.
Blockschaltbild
Bild 1
zeigt ein Beispiel eines Mikrocontroller-Systems auf der Basis des
C166S V2. Die aufgeführten Peripheriefunktionen entstammen der umfassenden
Peripherie-Bibliothek von Infineon und lassen sich problemlos mit dem
C166S V2-Core kombinieren.
Bild 1. Blockschaltbild
eines typischen C166S V2-Systems (Bild_1.jpg)
Das
Interruptsystem – Extrem kurze
Interrupt-Reaktionszeiten mit Hilfe lokaler
Registerbänke und eine verbesserte PEC-Funktion
Embedded-Systems-Anwendungen
mit Echtzeit-Eigenschaften verlangen nach einem leistungsfähigen und flexiblen
Interruptsystem mit kurzen Interrupt-Reaktionszeiten. Der C166S V2
unterstützt bis zu 128 Interruptquellen und 16
Interrupt-Prioritätsebenen. Innerhalb einer Interrupt-Prioritätsebene kann jede
Quelle jeweils einer von vier Prioritätsgruppen zugeordnet werden. Die Gruppenpriorität bestimmt, in welcher Reihenfolge
Interrupts gleicher Priorität abgearbeitet werden.
Jede
Interruptquelle lässt sich für die Behandlung durch zwei verschiedene
Interrupt-Mechanismen programmieren. Zusätzlich zur Behandlung durch Interrupt-Routinen steht eine DMA-Transfer-Option zur
Verfügung, die von der C166-Familie her als PEC (Peripheral Event Controller)
bekannt ist. Ein PEC-Kanal ermöglicht die zügige Interruptbearbeitung durch die
Übertragung einzelner Wörter oder Bytes zwischen beliebigen Speicherstellen.
Der C166S V2 ist mit einer verbesserten Ausführung des PEC ausgestattet,
die ein gleichzeitiges Inkrementieren der Quell‑ und Ziel-Pointer während
des PEC-Transfers zulässt. PEC-Services eignen sich deshalb überaus gut zum
unkomplizierten Senden und Empfangen von Datenblöcken.
Da
die meisten Interrupt-Routinen ihren eigenen Registersatz verwenden, muss die
CPU den aktuellen Inhalt der verwendeten Register abspeichern. Dieser als
Kontextwechsel bezeichnete Vorgang macht einen erheblichen Anteil der
Interrupt-Reaktionszeit aus. Der C166S V2 benötigt keine Taktzyklen für
diesen Ablauf. Er stellt drei reservierte Register Bänke
zur Verfügung, eine globale und zwei lokale. Die globale Register Bank
entspricht der in den C166-Controllern implementierten, über den Context
Pointer (CP) selektierbaren, speicheradressierten GPR-Bank (GPR = General
Purpose Register). Bei den lokalen Bänken
handelt es sich um reservierte Register Bänke,
die nicht speicheradressiert und in der Regel für zeitkritische Aufgaben
vorgesehen sind. Kontextwechsel unter Verwendung einer der lokalen Register Bänke sind extrem schnell, da die erforderlichen Anpassungen der Konfiguration für den Kontextwechsel
automatisch erfolgen und keinen Taktzyklus in Anspruch nehmen. Ein zu seinem Vorgaenger kompatibler Kontextwechsel ist möglich unter Zuhilfenahme der globalen
Register Bank. In der globalen Registerbank
befindet sich ein Abbild der physikalischen GPRs. Nach
einem Wechsel zu einer globalen Register Bank, müssen die Abbilder der
speicheradressierten GPRs gültig sein, bevor die Interrupt-Routine weiter
verarbeitet werden kann.
Ergänzend
zu den Interrupt-Funktionen der C166-Controller bietet der C166S V2 so
genannte „Fast Interrupts“ für zwei Interruptquellen hoher Priorität. Bei
Aktivierung eines Fast Interrupts springt die CPU direkt und ohne vorherigen
Zugriff auf die Interruptvektortabelle zu der betreffenden Interrupt-Routine. Hierdurch kann die Ausführung von
mindestens einem Verzweigungsbefehl eingespart werden, wodurch sich die
Interrupt-Reaktionszeit weiter verkürzt.
DSP-Funktionen
Die aktuellen Trends im Embedded-Systems-Bereich lassen
eine wachsende Nachfrage nach Lösungen erkennen, die die
Echtzeit-Steuerungsfunktionen konventioneller Mikrocontroller mit der
Rechenleistung eines DSP verbinden. Angesichts dieses Bedarfs und des ständig
zunehmenden Integrationsgrads erfüllt der C166S V2 beide Anforderungen,
indem er zusätzlich zur standardmäßigen ALU (Arithmetik‑ und
Logik-Einheit) eine leistungsstarke MAC-Einheit (Multiply/Accumulate) besitzt. Bild 2 zeigt das funktionale Blockschaltbild der MAC Einheit
des C166 V2.
Bild 2. Funktionales
Blockschaltbild der MAC Einheit des C166S V2 (MAC Block Diagram.jpg)
Die
MAC-Einheit mit ihrer Sättigungs‑ und Rundungs-Hardware kann
rechenintensive Routinen sehr leistungsfähig verarbeiten. Innerhalb eines
einzigen Zyklus kann sie 32-Bit-Additionen, 32-Bit-Subtraktionen, Links‑
und Rechtsverschiebungen, eine 16x16-Bit-Multiplikation oder eine
Multiplikation mit kumulativer Addition bzw. Subtraktion ausführen. Mit dieser
leistungsstarken Ausstattung kann beispielsweise
pro CPU-Zyklus eine FIR-Stufe (Finite Impulse Response) verarbeitet werden. Im
Fall einer 16x16-Bit-Multiplikation bewirkt dies – verglichen mit heutigen
Produkten der C166-Familie mit gleicher Taktfrequenz, aber ohne MAC – eine
zehnmal höhere Verarbeitungsgeschwindigkeit. Bei dem universellen Register, das
für alle diese Operationen herangezogen wird, handelt es sich um einen
40 Bit breiten Akkumulator, der Überlauf-Situationen problemlos bewältigen
kann. Mit einer Reihe von MAC-Anweisungen für Binärzahlen mit und ohne
Vorzeichen bietet der Befehlssatz des C166S V2 Unterstützung für beide
Formate. Bruchzahlen werden direkt unterstützt. Die
Divisions-Einheit führt Divisionen innerhalb von bis zu 21 CPU-Zyklen aus. Da
jedoch nach dem vierten Zyklus alle weiteren Zyklen im Hintergrund ausgeführt
werden, steht die CPU schon wieder zur
Entgegennahme weitere Befehle zur Verfügung. Zur Unterstützung spezieller
DSP-Adressierungsarten – beispielsweise für parallele Datenverschiebungen im
Zusammenhang mit MAC-Operationen – sind entsprechende Pointer‑ und
Offsetregister vorhanden.
Chip-interner Speicher
Der
Mikrocontroller C166S V2 besitzt eine kombinierte Harvard‑ und
Von-Neumann-Architektur. Typisch für eine Harvard-Architektur sind die
separaten Code‑ und Datenspeicher. Die physikalische
Trennung dieser Speicher ermöglicht gleichzeitige Zugriffe auf Befehle und erhoeht somit entscheidend die Verarbeitungsleistung.
Der Adressbereich des C166S V2 beträgt 16 MByte. Wie bei einer
typischen Von-Neumann-Architektur ist ein einheitlicher Adressbereich für
Befehls‑ und Datenspeicher vorhanden, was bei Bedarf eine effiziente
Speichernutzung mit abwechselnden Code‑ und Datenzugriffen zulässt.
Innerhalb des C166S V2-Systems ist der Programmspeicher derjenige Bereich,
der beide Zugriffsarten unterstützt. Generell unterstützt der C166S V2
einen internen Zero-Wait-State-Datenspeicher von bis zu 24 kByte und bis
zu 4 MByte internen Codespeicher. Das Interface
zum Codespeicher ist 64 Bit breit. Damit kann die CPU vier 16-Bit-Befehle auf
einmal abrufen. Neben Programmcode können auch Daten im Codespeicher
abgelegt werden. Die PMU (Program Memory Unit) dient als Schnittstelle zum Programmspeicher
und versorgt die CPU mit dem Programmcode sowie mit Daten, sofern diese im
Programmspeicher untergebracht sind. Muss Code aus externem Speicher geholt
werden, leitet die PMU die entsprechenden Zugriffe ein. Zusätzlich zu den Code‑
und Datenspeichern enthält der C166S V2 ein Dual-Port-SRAM mit einer
Kapazität bis zu 3 KByte, in dem DSP-Daten und nicht-lokale
Universalregister untergebracht sind. In einer typischen Konfiguration eines
C166S V2-Systems (siehe Bild 1) kann ein 64-Bit-Codezugriff auf die
PMU gleichzeitig mit drei 16-Bit-Datenzugriffen auf die DMU und das
Dual-Port-SRAM ausgeführt werden.
Stromspar-Betriebsarten
Heutige
Embedded-Systems-Anwendungen müssen mit einem eng gesteckten
Verlustleistungs-Budget auskommen. Dies gilt übrigens nicht nur für Mobil‑
und Handheld-Applikationen, in denen es auf maximale Batterielebensdauer
ankommt. Angesichts des ständig zunehmenden Integrationsgrads und der immer
höheren Taktfrequenzen stellt die Leistungsaufnahme vielmehr ein wichtiges
Kriterium für nahezu jede Embedded-Systems-Anwendung dar. Der Mikrocontroller
C166S V2 verfügt über ein flexibles
Stromspar-System, das die Leistungsaufnahme je nach der im Einzelfall
benötigten Verarbeitungsleistung optimiert. Ergänzend zum regulären Betrieb (Aktiver
Modus) kann der C166S V2 softwaregesteuert in die Betriebsarten
Idle, Sleep und Power Down versetzt werden. Im Idle-Modus wird zur
Senkung der Leistungsaufnahme die CPU abgeschaltet, während die chip-interne
Peripherie (GPT, ASC, SSC …) in Betrieb bleibt.
Der Idle-Modus wird durch einen Reset oder eine Interruptanforderung beendet.
Selbst Interruptanforderungen, die wegen zu geringer Priorität zurückgewiesen
werden, reaktivieren das System. Der
Sleep-Modus des C166S V2 verringert die Leistungsaufnahme weiter, indem
neben der CPU auch die chip-interne Peripherie außer Betrieb gesetzt wird. Nur
externe Interrupts oder ein Reset können diese Betriebsart aufheben. Wieviel
Leistungsaufnahme in diesem Betriebszustand aufgenommen wird, hängt in erster
Linie davon ab, wieviel Strom durch die aktiven Port-Treiber fließt. Im
Interesse einer minimalen Leistungsaufnahme können (und sollten) nicht
benötigte Port-Treiber abgeschaltet werden. Die Außerbetriebsetzung aller
internen Funktionen im Verbund mit dem NMI-Signal (NMI = Non-Maskable
Interrupt) ist der Zweck des im C166S V2 implementierten Power-Down-Modus.
Der Befehl, der den Power-Down-Modus einleitet, ist nur dann wirksam, wenn der
NMI-Eingang aktiv ist. Zum Beispiel kann der NMI-Eingang mit einem Power-Fail-Signal
verbunden werden und die NMI-Interruptroutine den
Power-Down-Befehl auslösen. Nur ein Reset-Signal kann das System erneut
reaktivieren.
Ergänzend
zu den hier beschriebenen Betriebsarten bietet der C166S V2 die
Möglichkeit, die Taktfrequenz der chip-internen Peripheriefunktionen
herabzusetzen oder einzelne Peripherie-Einheiten ganz abzuschalten. Diese
Merkmale tragen ebenfalls zur geringen Leistungsaufnahme des C166S V2 bei.
((ZÜ))
Emulatoren
und Software-Tools
((FT))
Für
den C166S V2 wird eine ganze Palette an Software‑ und Debug-Tools
angeboten. Die Firma Tasking ergänzt ihre etablierte Compiler-Familie durch ein
C166S V2-Upgrade zu ihrem C166 IDE Environment. Nohau brachte einen
C166S V2-Emulator auf den Markt, der mit einem C166S V2-Bondout-Baustein
die Level-3-Emulation zulässt. Der C166S V2 bietet ausserdem On-Chip Debug Support (OCDS) Level 1. Damit steht
auch in SoC-Designs mit mehreren Cores eine effektive
Methode zur System-Emulation mit Breakpoints, Inspektion von Speicher‑
und Registerinhalten und Single-Step-Verarbeitung zur Verfügung. Der patentierte
Sicherheitsmechanismus des OCDS Debug-Ports bietet dem
im Chip integrierten IP (Hard‑ und Software) einen umfassenden
Schutz und räumt dennoch uneingeschränkte Debugging-Möglichkeiten ein. Für On-Chip-Debugging unter Einschluss des
Echtzeit-Tracings (Level 3 und höher) befindet sich ein Emulationssystem auf
der Basis des IEEE-ISTO-Standards Nexus 5001 in der Entwicklung, das vom
dritten Quartal 2001 an verfügbar sein wird.
((ZÜ))
Anwendungsbeispiel
Harddisk-Controller
((FT))
Der
C166S V2 wurde speziell für Anwendungen entwickelt, die hohe DSP-Leistung
im Verbund mit leistungsfähiger Interruptverarbeitung und schnellen
Kontextwechseln erfordern. In diese Kategorie gehören unter anderem Applikationen
mit Servofunktionen wie etwa die Controller heutiger Harddisk-Laufwerke.
Bild 3 zeigt das Blockdiagram eines solchen Bausteins.
Bild 3. Blockdiagramm eines typischen Controller Bausteins fuer
Harddisk-Laufwerke (HDC Block Diagram.jpg)
Die
steil ansteigende Spurdichte (tracks per inch)
bedingt immer leistungsfähigere Servo-Einheiten, und auch
durch den steigenden Kostendruck werden an die Mikrocontroller dieser
Systeme immer höhere Anforderungen gestellt. Um kurze Interrupt-Reaktionszeiten
für die wichtigsten Verarbeitungsaufgaben zu garantieren, können die beiden
schnellen lokalen Register Bänke für den Servo-Interrupt bzw. den
Host-Interface-Interrupt verwendet werden. Dies
gewährleistet eine schnelle Abarbeitung der host Kommandos sowie eine
minimierte Verzögerungszeit zwischen dem Erfassen eines Signals und dem
Generieren des entsprechenden Korrektursignals im Servo Regelkreis. Die
leistungsstarke MAC-Einheit unterstützt die rechenintensiven Servo-Routinen.
Der C166S V2 erfüllt somit souverän alle Anforderungen, die an die
Microcontroller heutiger Festplatten gestellt werden. Bild 4 zeigt Infineon's
jüngste Festplatten-Controller Generation.
Bild 4. Infineon's neueste Generation Festplattencontroller (HDC
Controller.jpg)
((ZÜ))
Fazit
((FT))
Mit
dem C166S V2 hat Infineon einen Mikrocontroller-Core auf den Markt
gebracht, der ein leistungsstarkes und voll kompatibles Upgrade zu den
etablierten C166-Controllern darstellt. Das Unternehmen unterstreicht hiermit
deutlich, dass es weiterhin auf die C166-Architektur setzt. Ebenso wie die
bisherige Version des C166-Cores (C166S V1) wird auch der C166S V2 im Jahr
2001 für die offene Lizenzierung zur Verfügung stehen. Er ergänzt damit die
„Unified Processor Architecture“ TriCore™ und den leistungsstarken DSP-Core
CARMEL und stellt ein weiteres bedeutendes Element des Intellectual
Property-Portfolios von Infineon dar.
Infineon
Technologies AG, München
http://www.infineon.com/cgi/ecrm.dll/ecrm/scripts/prod_cat.jsp?oid=-8137
((Zur
Autorin))
Gabriela Born ist als Konzeptingenieur bei der Network and Computer Storage Division von Infineon in München tätig. Speziell auf dem Harddisk-Sektor verfügt sie über umfassende Erfahrung in der Spezifikation und im Design von Embedded-Systems-Anwendungen auf der Basis der C166-Mikrocontroller von Infineon.