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

Bilder:                        1 Grafik,1 Aufmacher, 1 Autoren-Bild
Produkt:                     Mikrocontroller/DSP-Kombination C166S V2

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.