63
Intel XScale Rechnerstrukturen WS 2002 /2003 Prof. Risse Bearbeitet von: Bayram Akpunar Vedat Tüfekciler Jan Lehmkuhl Datum: 25.12.2002

1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Intel XScaleRechnerstrukturen

WS 2002 /2003Prof. Risse

Bearbeitet von:Bayram AkpunarVedat TüfekcilerJan Lehmkuhl

Datum: 25.12.2002

Page 2: 1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Rechnerstrukturen Intel XScale

Inhaltsverzeichnis

EINLEITUNG...........................................................................................................................4

1.1 AUFBAU DES PXA250.................................................................................................51.2 INTEL XSCALE CORE – PROZESSORKERNARCHITEKTUR.............................................6

2 ARCHITEKTUR..............................................................................................................7

2.1 BIG ENDIAN, LITTLE ENDIAN......................................................................................72.2 ERWEITERUNG ZUR ARM* - ARCHITEKTUR...............................................................7

3 KOPROZESSOR CP15....................................................................................................9

3.1 REGISTER 1: CONTROL & AUXILIARY CONTROL REGISTERS...................................10

4 KOPROZESSOR CP14..................................................................................................12

5 MAC KOPROZESSOR CP0.........................................................................................13

5.1 MULTIPLIZIEREN MIT INTERNEM AKKUMULATOR FORMAT......................................145.1.1 MIA{<cond>} acc0, Rm, Rs.............................................................................155.1.2 MIAPH{<cond>} acc0, Rm, Rs........................................................................155.1.3 MIAxy{<cond>} acc0, Rm, Rs..........................................................................165.1.4 Timings der neuen MAC Befehle......................................................................18

5.2 CONDITION FIELD {COND}........................................................................................185.3 INTERNALE ACCUMULATE ACCESS FORMAT............................................................19

5.3.1 MAR{<cond>} acc0, RdLo, RdHi....................................................................195.3.2 MRA{<cond>} RdLo, RdHi, acc0....................................................................20

5.4 MRC / MCR FORMAT...............................................................................................21

6 MEMORY MANAGEMENT UNIT.............................................................................22

7 CACHE............................................................................................................................23

7.1 INSTRUCTION CACHE.................................................................................................237.1.1 Aufbau...............................................................................................................247.1.2 Betriebsmodi / Aktualisieren der Cachline......................................................25

7.2 DATA CACHE.............................................................................................................257.2.1 Aufbau...............................................................................................................257.2.2 Betriebsmodi.....................................................................................................277.2.3 Hit under Miss...................................................................................................27

7.3 MINI DATA CACHE....................................................................................................277.3.1 Aufbau...............................................................................................................277.3.2 Betriebsmodi.....................................................................................................28

8 FILL BUFFER (FB) UND PEND BUFFER (PB)........................................................29

9 WRITE BUFFER (WB).................................................................................................29

HS Bremen WS 2002 / 2003 2

Page 3: 1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Rechnerstrukturen Intel XScale

Inhaltsverzeichnis

10 RE-KONFIGURATION VON DATA CACHE IN RAM.......................................29

10.1 DATA RAM ERZEUGEN.............................................................................................3010.2 LOCKING DATA INTO THE DATA CACHE..................................................................31

11 PIPELINING...............................................................................................................32

11.1 DIE MAIN EXECUTION PIPELINE...............................................................................3211.2 DIE MEMORY PIPELINE.............................................................................................3311.3 MAC-PIPELINE..........................................................................................................3311.4 BRANCH TARGET BUFFER (BTB).............................................................................34

12 POWER MANAGEMENT........................................................................................35

12.1 LEISTUNGS- UND VERBRAUCHSANGABEN FÜR AKTUELLE XSCALE PROZESSOREN35

12.2 REALISIERUNG DES POWER MANAGEMENT..............................................................36

13 BENCHMARKS.........................................................................................................38

13.1 LAUFZEITEN VON PDAS............................................................................................3813.2 LEISTUNGSTESTS.......................................................................................................39

14 PERIPHERIE..............................................................................................................40

15 Quellen.........................................................................................................................41

HS Bremen WS 2002 / 2003 3

Page 4: 1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Rechnerstrukturen Intel XScale

Einleitung

Eine Analyse des Marktforschungsunternehmen IDC über den weltweiten Verkauf von mobilen Kleingeräten hatte ergeben, dass im Jahr 1998 ca. 4,2 Millionen mobile Kleingeräte verkauft worden sind. Im folgenden Jahr 1999 wurden 5,4 Millionen Kleingräte verkauft, welches einen Zuwachs von 23% gegenüber dem letzten Jahr (1998) ergab. Eine Hochrechnung des Unternehmens IDC prognostiziert für das Jahr 2003, dass ca. 19 Millionen Kleingeräte verkauft werden, dieses wäre eine Steigerung um 352% gegenüber dem Jahr 1999.

Ein Problem bei den mobilen Kleingeräten ist der Energieverbrauch, hier hat man festgestellt, dass der größte Stromfresser die CPU ist.

Intel hat deshalb den XScale Prozessor entwickelt, er ist der Nachfolger des StrongARM Prozessors. Der XScale hat jetzt zwei Stromsparfunktionen, dies sind ein „flexibles Power-Management“ und die „Speed Step“ Technik. Durch seinen geringen Stromverbrauch ist der Prozessor ideal geeignet für Mobilegeräte (PDAs) .

Die gängigsten PDA-Prozessoren von Intel sind zur Zeit:

- Intel PXA210 bis 200Mhz- Intel PXA250 bis 400Mhz

Wir betrachten den Intel PXA250 etwas genauer.

Sie werden z.B. in den Asus MyPal, AD600 und FSC Pocket Loox verwendet.

Den Intel PXA250 als Stromspar-Mikroprozessor zu bezeichnen ist nicht ganz richtig, denn der PXA250-chip beinhaltet nämlich nicht nur den eigentlichen XScale Mikroprozessor, sondern auch zusätzlich eine Vielzahl verschiedenster Peripheriekomponenten und Funktionen. Deshalb nennt auch Intel sein XScale Prozessor (PXAxx) auch „Application Processor“.

Die hier erwähnten Eigenschaften des Intel XScale Prozessors werden wir später genauer betrachten.

HS Bremen WS 2002 / 2003 4

Page 5: 1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Rechnerstrukturen Intel XScale

1.1 Aufbau des PXA250

Abb. 1: Blockdiagramm vom PXA250

Das Blockdiagramm veranschaulicht die Struktur des Intel PXA250 Prozessors.Der eigentliche Kern des Prozessors ist grün dargestellt; er wird auch als Intel XScale Core bezeichnet; das ist der eigentliche Prozessorkern. Um diesen Prozessorkern sehen wir in blau dargestellt die Peripherie-Schnittstellen wie z.B. Bluetooth, UART oder I2C und in gelb einige Kontroller wie z.B. Color LCD Controller oder Clock Controller.

HS Bremen WS 2002 / 2003 5

Page 6: 1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Rechnerstrukturen Intel XScale

1.2 Intel XScale Core – Prozessorkernarchitektur

Das folgende Blockdiagramm veranschaulicht die Struktur des Intel XScale Prozessorkerns.

Abb. 2: Blockdiagramm der Struktur vom Intel XScale Kern

Der Prozessorkern hat einen dreifachen Cache:- 32KByte Instruction Cache- 32KByte Data Cache- 2 KByte Mini Data Cache

mit der zugehörigen Memory Management Unit, mit einem 64 Bit breiten Kernspeicherbus mit gemeinsamem 32 Bit Inputpfad und 32 Bit Outputpfad.Die Performance Monitor Unit beinhaltet 2 x 32 Bit Zähler und 1 x 32 Bit Cycle Zähler für die Analyse von Trefferraten, etc.Eine 32 Bit Koprozessorschnittstelle sorgt für hohen Leistungstransfer zwischen dem Prozessorkern und dem Koprozessor. Die Debug-Unit verwendet Hardware Breakpoints und 256 Einträge „trace history buffer“ zum debuggen.

HS Bremen WS 2002 / 2003 6

Page 7: 1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Rechnerstrukturen Intel XScale

2 Architektur

Bei dem StrongARM Prozessor handelt es sich um eine RISC-CPU mit einer typischen Load / Store Architektur und einer Instruktionslänge von max. 32 Bit. Da es sich beim Xscale um eine Weiterentwicklung des StrongARM Prozessors handelt, ist er kompatibel mit dem Befehlssatz des ARM* Version 5TE ISA. Das bedeutet, der XScale versteht den 32 Bit (ARM*) Befehlssatz, den 16 Bit (Thump*) Befehlssatz und die DSP Erweiterungen.Die Befehle des Thump-Befehlssatzes sind 16 Bit lang. Dadurch hat der Prozessor einen kleinen Adressraum.Die DSP Erweiterung beschleunigt Audio-Anwendungen, sie setzt eine erweiterte 16 Bit und 32 Bit Arithmetik ein.Der XScale verarbeitet 8-, 16-, und 32 Bit Datentypen.Der Prozessor arbeitet in 7 Prozessor-Modi. Diese sind: User, System, Supervisor, Abort, Undefined Instruktio, Fast Interrupts, Normal Interrupts.Am interessantesten ist der System-Mode. Hier können viele Systemeinstellungen aktiviert und konfiguriert werden, welches aus den anderen Modi nicht möglich ist.

2.1 Big Endian, Little Endian

Die Mikroprogrammarchitektur unterstützt sowohl „big endian“ als auch „little endian“. Die Auswahl wird über das Register 1/ Bit 7, vom Koprozessor CP15 gesteuert.

2.2 Erweiterung zur ARM* - Architektur

Hier bekam der DSP Koprozessor CP0 einen 40 Bit Akkumulator und 8 neue Befehle, die auch als MAC (Multiply/Acumulate) Befehle bezeichnet werden. Die neuen Befehle sind :

- MIA- MIAPH- MIAxy- MAR- MRA

Das sind auch SIMD-Befehle (Single Instruction Multiple Data), sie werden z.B. für Grafik Filter verwendet. Der Koprozessor CP15 wurde um neue Funktionen erweitert, und der Koprozessor CP14 wurde neu dazu implementiert.

HS Bremen WS 2002 / 2003 7

Page 8: 1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Rechnerstrukturen Intel XScale

Der XScale hat 13 Allzweckregister R0.. R12, 1 Stack Pointer (SP), 1 Link Register (LR), und ein Programm Counter (PC).Dazu kommen die Register CPSR (Current Program Status Register) und SPSR (Save Program Status Register).Alle Register sind 32 Bit lang.

Die 7 Prozessor Modi, mit den dazugehörigen Registern :

Tabelle 1: Prozessor Modi und die Registern

Wie man hier erkennen kann, benutzt der User-Mode dieselben Register wie der System-Mode. Im Gegensatz zum User-Mode hat der System-Mode Privilegien wie z.B. das Wechseln in andere Modi.Die Register R0 .. R7 sind unabhängig vom aktuellen Modus verfügbar. Im Gegensatz dazu können die grauhinterlegten Register in der Tabelle 1 nur in bestimmten Modi verwendet werden.

HS Bremen WS 2002 / 2003 8

Page 9: 1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Rechnerstrukturen Intel XScale

3 Koprozessor CP15

Die folgende Tabelle zeigt die Register des Koprozessor CP15 mit dem zugehörigen Opcode_2 und die Funktion / Verwendungszweck des Registers. Das interessante hier ist die Doppelbelegung der Register in Abhängigkeit vom Opcode_2. Z.B. Register 1: ist der Opcode_2 = 0 wird Control Register ausgewählt, ist der Opcode_2 = 1 so wird das Auxiliary Control Register ausgewählt.

Tabelle 2 zeigt den Verwendungszweck der CP15- Register.Beispiele:

Das Register 7 ist für Cache Operationen (Cache Operations) vorgesehen.Das Register 8 ist für TLB Operationen (TLB Operations) vorgesehen.

Auf das Register 1 des Koprozessors CP15 gehen wir später genauer ein (siehe Seite 10f).Auf der Seite 10 wird ebenfallserklärt, warum die Register 0 und 1 doppelt belegt sind. Der Koprozessor CP15 beinhaltet 16 Register mit je 32 Bit.

XScale Konfiguration

Tabelle 2: Koprozessor CP15 Register

HS Bremen WS 2002 / 2003 9

Page 10: 1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Rechnerstrukturen Intel XScale

3.1 Register 1: Control & Auxiliary Control Registers

Das Register 1 des Koprozessors CP15 in Abhängigkeit vom Opcode_2 unterstützt verschiedene Konfigurationsmöglichkeiten. Bei Opcode_2 = 0 ist es zur ARM Version 5 kompatibel, das heißt, mit diesen Registern können sowohl StrongARM Prozessoren als auch Intel XScale Prozessoren konfiguriert werden. Bei Opcode_2 = 1 ist das Register nur von XScale-Erweiterungen verwendbar.

ARM* Control Register Opcode_2 = 0

Abb. 3: ARM* Control Register des CP15

Beim Betrachten der Register fällt auf, dass die Bits[31:14] nicht belegt sind. Daraus erkennt man, dass diese Bits für zukünftige Erweiterungen reserviert sind.

HS Bremen WS 2002 / 2003 10

Page 11: 1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Rechnerstrukturen Intel XScale

Auxiliary Control Registers Opcode_2 = 1

Wenn man sich diese Registerbelegung anschaut, so kann man erkennen, dass der XScale Prozessor noch sehr viele Erweiterungsmöglichkeiten hat. Dieses Hilfskontrollregister ist z.B. dafür da, um den Mini Data Cache zu konfigurieren.

Abb. 4: Auxiliary Control Register des CP15

HS Bremen WS 2002 / 2003 11

Page 12: 1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Rechnerstrukturen Intel XScale

4 Koprozessor CP14

Der Koprozessor CP14 hat 16 Register mit je 32 Bit.Die Aufgaben dieser Registern sind die Identifizierung bzw. das Kontrollieren von Operationen und Funktionen.Die Register 0-3 sind für die Leistungsüberwachung (Performance Monitoring) vorgesehen.Die Register 4-5 sind für zukünftige Anwendungen reserviert.Die Register 6-7 sind für die Takt- und Energieverwaltung (Clock and Power Management) vorgesehen.Die Register 8-15 sind für den Software Debug.

Tabelle 3: 16 Register des CP14

HS Bremen WS 2002 / 2003 12

Page 13: 1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Rechnerstrukturen Intel XScale

5 MAC Koprozessor CP0

Der Koprozessor CP0 übernimmt die Abarbeitung von Audio- und Video-Algorithmen, um den Prozessor zu entlasten. Zum Beispiel bei der Anwendung von Grafikfiltern wird der 40 Bit Accumulator benutzt.Für diese Operation stellt der Koprozessor CP0 8 neue Befehle zur Verfügung.

Multiply with Internal Accumulator Format:

- MIA- MIAPH

-

Internale Accumulate Access Format:

- MAR- MRA

MIA, MIAPH und MIAxy sind Multiply/Accumulate Befehle.Die Befehle MAR und MRA sind dafür da, um den 40 Bit Accumulator schreiben und lesen zu können. In allen Prozessor-Modi wird der Zugang zur CP0 erlaubt, wenn das Bit 0 vom Koprozessor (Zugangsregister) gesetzt ist. Jeder andere Zugang zum CP0 gibt, ohne das Zugangsregister gesetzt zu haben, eine „undefinierte Ausnahme“.Nur „ Privilegierte “ Software kann dieses Zugangsregister für CP0 setzen.Wenn mehrere Prozesse auf der CP0 laufen, werden durch einen Kontextswitch bei Prozesswechseln die notwendigen Information gerettet.

HS Bremen WS 2002 / 2003 13

Page 14: 1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Rechnerstrukturen Intel XScale

5.1 Multiplizieren mit internem Akkumulator Format

Abb. 5: Aufbau Akkumulator Format

Das acc-Feld gibt an, welche von den 1 bis 8 Accumulatoren angesprochen werden. Das Opcode_3-Feld enthält die Operation. Im XScale ist nur der 40 Bit Accumulator acc0 (000) implementiert. Zukünftige Implementierungen können „multiple internal accumulators“ verwenden. XScale benutzt den opcode_3, um 6 Anweisungen zu definieren :

- MIA- MIAPH- MIABB- MIABT- MIATB- MIATT

Wie man hier erkennen kann, ist noch Freiraum für zukünftige Erweiterungen.

(Condition Field {cond} siehe: 5.2 Condition Field auf Seite 18)

HS Bremen WS 2002 / 2003 14

Page 15: 1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Rechnerstrukturen Intel XScale

5.1.1 MIA{<cond>} acc0, Rm, Rs

Abb. 6: Aufbau des MIA Befehls

Operation : if BedingungPassed (<cond>) thenacc0 = (Rm[31:0] * Rs[31:0]) [39:0] + acc0[39:0]

Ist die Bedingung erfüllt, so multipliziert dieser Befehl zwei vorzeichenbehaftete 32 Bit Werte miteinander, die in den Registern Rm und Rs stehen. Von den 64 Bit, die aus der Multiplikation hervorgehen, werden nur die unteren 40 Bit mit dem Accumulator(acc0)-Inhalt addiert und in den Accumulator (acc0) zurückgeschrieben.

Leider konnten wir in der XScale Dokumentation keine konkreten Beispiele für die Verwendung dieses Befehls finden.(Condition Field {cond} siehe: 5.2 Condition Field auf Seite 18)

5.1.2 MIAPH{<cond>} acc0, Rm, Rs

Abb. 7: Aufbau des MIAPH Befehls

Operation : if BedingungPassed (<cond>) thenacc0 = sign_extend(Rm[31:16] * Rs[31:16]) +

sign_extend(Rm[15:0] * Rs[15:0]) + acc0[39:0]

Die MIAPH Anweisung führt zweimal eine 16 Bit Multiplikation aus, die vorzeichenbehaftet ist. Als erstes werden die beiden Highbytes von Register Rm mit den Highbytes des Registers Rs multipliziert. Die daraus entstehenden 32 Bit Werte werden auf 40 Bit erweitert. Dieser Schritt der Multiplikation und die Erweiterung auf 40 Bit wird auch auf den Lowbytes der Register Rm und Rs ausgeführt. Die beiden 40 Bit Werte aus der Multiplikation werden zu dem Inhalt des Accumulators(acc0) addiert und das Ergebnis in den Akkumulator(acc0) zurückgeschrieben.

Leider konnten wir in der XScale Dokumentation keine konkreten Beispiele für die Verwendung dieses Befehls finden.(Condition Field {cond} siehe: 5.2 Condition Field auf Seite 18)

HS Bremen WS 2002 / 2003 15

Page 16: 1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Rechnerstrukturen Intel XScale

5.1.3 MIAxy{<cond>} acc0, Rm, Rs

Abb. 8: Aufbau des MIAxy Befehls

Operation : if BedingungPassed (<cond>) thenIf (Bit[17] == 0) <operand1> = Rm[15:0]else <operand1> = Rm[31:16]

If (Bit[16] == 0) <operand2> = Rs[15:0]else <operand2> = Rs[31:16]

acc0[39:0] = sign_extend(<operand1> * <operand2>) + acc0[39:0]

Die MIAxy Anweisung führt eine mit Vorzeichen versehene 16 Bit Multiplikation aus. Der Unterschied zur MIAPH ist, dass man hier noch die Highbytes bzw. Lowbytes beliebig miteinander multiplizieren kann.Das x bezieht sich entweder auf die obere Hälfte oder dei untere Hälfte des Registers Rm (Multiplikanden). Y bezieht sich auf die obere oder untere Hälfte des Registers Rs (Multiplikator). (Mögliche Werte für x,y: 00, 01, 11, 10)

MIAxy unterstützt keine vorzeichenlose Multiplikation. Alle Werte in Rs und Rm werden als vorzeichenbehaftete Werte betrachtet.

Leider konnten wir in der XScale Dokumentation keine konkreten Beispiele für die Verwendung dieses Befehls finden.(Condition Field {cond} siehe: 5.2 Condition Field auf Seite 18)

HS Bremen WS 2002 / 2003 16

Page 17: 1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Rechnerstrukturen Intel XScale

Hier sind noch mal die 3 Befehlstypen dargestellt. Wie man erkennen kann, unterscheidet der Opcode_3, welcher Befehl ausgeführt werden soll. Der Opcode_3 ist 4 Bit breit und im Augenblick sind nur 6 Befehle implementiert. Das bedeutet, dass Intel noch Raum für Erweiterungen hat. Interessant ist hier auch das acc-Feld. Man verwendet bis jetzt nur acc0, man könnte aber hier weitere 7 Accumulatoren ansprechen.

(Condition Field {cond} siehe: 5.2 Condition Field auf Seite 18)

HS Bremen WS 2002 / 2003 17

Page 18: 1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Rechnerstrukturen Intel XScale

5.1.4 Timings der neuen MAC Befehle

Tabelle 4: Timing der MAC Befehle

Aus der Timing Tabelle ist ersichtlich, dass der Befehl MIAxy in einem Cyle abgearbeitet wird.Die Abarbeitung des Befehls MIAPH kann bis zu 2 Cycles benötigen (Befehl MIA bis zu 3 Cycles).

5.2 Condition Field {cond}

Mnemonic Description Description(VFP)EQ Equal EqualNE Not equal Not equal, or unordered

CS / HS Carry Set / Unsigned higher or same Greater than or equal , or unorderedCC / LO Carry Clear / Unsigned lower Less than

MI Negative Less thanPL Positive or zero Greater than or equal, or unorderedVS Overflow Unordered (at least one NaN operand)VC No overflow Not unorderedHI Unsigned higher Greater than, or unorderedLS Unsigned lower or same Less than or equalGE Signed greater than or equal Greater than or equalLT Signed less than Less tha, or unorderedGT Signed greater than Greater thanLE Signed less than or equal Less than or equal, or unorderedAL Always (normally omitted) Always (normally omitted)

HS Bremen WS 2002 / 2003 18

Page 19: 1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Rechnerstrukturen Intel XScale

5.3 Internale Accumulate Access Format

Die Befehle MAR und MRA ermöglichen ein Lesen / Schreiben auf den 40 Bit Akkumulator (acc0). Das L-Bit entscheidet, ob aus den Registern in den Akkumulator geschrieben werden soll(L-Bit = 0). Wenn das L-Bit = 1 ist, wird aus dem 40 Bit Akkumulator in die Register geschrieben. Die Felder RdHi / RsLo erlauben eine bis zu 64 Bit Datenübertragung zwischen Registern und dem Akkumulator.Zugang zum internen Akkumulator wird in allen Prozessormodi erlaubt, (User und Privileged) so lange das Bit 0 des Koprozessorzugangsregisters gesetzt ist.

Abb. 9: Aufbau des Internale Accumulate Access Format

5.3.1 MAR{<cond>} acc0, RdLo, RdHi

Abb. 10: Aufbau des MAR Befehls

Operation : if BedingungPassed (<cond>) thenacc0[39:32] = RdHi[7:0]acc0[31:0] = RdLo[31:0]

Register Accumulator: L-Bit = 0

Die MAR Anweisung bewegt die Bits RdHi[7:0] des Registers in den Akkumulator (acc0, Bits acc0[39:32]). Die unteren 32 Bit vom Akkumulator acc0[31:0] werden mit den Bits des Registers RdLo[31:0] gefüllt.

(Condition Field {cond} siehe: 5.2 Condition Field auf Seite 18)

HS Bremen WS 2002 / 2003 19

Page 20: 1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Rechnerstrukturen Intel XScale

5.3.2 MRA{<cond>} RdLo, RdHi, acc0

Abb. 11: Aufbau des MRA Befehls

Operation : if BedingungPassed (<cond>) thenRdHi[31:0] = sign_extend(acc0[39:32])RdLo[31:0] = acc0

Accululator Register: L-Bit = 1

Die MRA Anweisung bewegt die 40 Bit des Akkumulator (acc0) in zwei Register. Die Bits des acc0[31:0] werden in das Register RdLo geschrieben. Die Bits des acc0[39:32] werden erst auf 32 Bit erweitert und dann in das Register RdHi bewegt.

(Condition Field {cond} siehe: 5.2 Condition Field auf Seite 18)

HS Bremen WS 2002 / 2003 20

Page 21: 1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Rechnerstrukturen Intel XScale

5.4 MRC / MCR Format

Bits Beschreibung Anmerkung31:28 Cond - ARM Bedingung cods23:21 opcode_1 - Reserviert Sollte auf Null Programmiert werden,

für zukünftige Kompatibilität20 n – lesen oder schreiben Koprozessor

Register0 = MCR1 = MRC

19:16 CRn - Welcher Koprozessor Register15:12 Rd - Allzweck Register, Ro.. R1511:8 CP_num - Koprozessor Nummer 1111 = CP14

1110 = CP150000 = CP0

7:5 opcode_2 -Funktions-Bits Mögliche Werte: „000“ oder „001“3:0 CRm – Funktion-Bits Mögliche Werte: „0000“

Abb. 12: Aufbau des MRC/MCR Format

Für die Konfiguration der Koprozessoren verwendet XScale die Befehle MRC/MCR. Der Unterschied bei dem Befehl ist das n-Bit, hiermit erkennt der Prozessor, ob er lesend oder schreibend auf den im CP_num-Feld angegebenen Koprozessor zugreifen soll. Das CRn-Feld gibt an, welches Register des Koprozessors angesprochen werden soll.Das Opcode_2-Feld ist dafür da, um spezielle XScale Funktionen oder allgemeine ARM Funktionen zu unterscheiden (siehe Tabelle 5: Koprozessor CP15 Registern). Die möglichen Werte hierfür sind „000“ oder „001“. Erweiterungen im CRm-Feld sind möglich. Das Rd-Feld gibt, an welches Allzweckregister benutzt wird.

Das Cond-Feld wurde von ARM übernommen und enthält Informationen wie z.B. 0000 =EQ (equel) oder 0001 = NE (not equel).

(Condition Field {cond} siehe: 5.2 Condition Field auf Seite 18)

HS Bremen WS 2002 / 2003 21

Page 22: 1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Rechnerstrukturen Intel XScale

6 Memory Management Unit

Die Memory Management Unit des Prozessors erfüllt folgende Aufgaben: Übersetzung von logischen in physikalische Adressen beim Instruction Prefetch Kontrolle der Speicherzugriffserlaubnis Speicherbereichserkennung Steuerfunktionen des Cache

o Unterscheiden zwischen Daten für Data Cache und Mini Data Cache *o Write-back oder Write-through Data Cachingo Aktivieren des Write Buffers, um in den externen Speicher zu schreiben

Sie verfügt über 32 Eingänge, die über ITLB (Instruction Translation Look-a-side Buffer) eine vollassoziative Adressübersetzung ermöglichen. Die TLB werden nach dem Round-Robin-Ersetzungsalgorithmus aktualisiert. Die Eingänge der ITLB 0-30 können nach Bedarf gesperrt werden. Dies ist beginnend mit dem Eingang 0 nur aufsteigend und ohne Lücken möglich. Der Zugriff auf jeden der 16 Speicherbereiche, die adressiert werden können, ist auch programmierbar. Intel unterscheidet zwischen einer IMMU (Instruction Memory Management Unit) und DMMU (Data Memory Management Unit) beide haben aber grundsätzlich die gleichen Eigenschaften .Sie können nur gemeinsam deaktiviert /aktiviert werden.

TLB “Lock“ Funktionen und Befehle für CP 15

Konkretes Assembler Beispiel für das Sperren von TLBs

* Wie unterschieden wird, ob die Daten für Data- oder Mini Data Cache sind, konnte nicht aus der Intel Dokumentation entnommen werden.

HS Bremen WS 2002 / 2003 22

Page 23: 1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Rechnerstrukturen Intel XScale

Auswirkungen auf den Round- Robin Algorithmus mit gesperrten Eingängen 0-7

Abb. 13: Round-Robin mit gesperrten entrys

Es werden nur noch die Eingänge 8-31 aktualisiert.

7 Cache

Der Intel PXA250 Prozessor hat einen getrennten Befehls- und Daten Cache. Cachegrößen:

• 32-KByte Instruction Cache• 32-KByte Data Cache• 2-KByte Mini Data Cache

7.1 Instruction Cache

Der Instruction Cache ist ein 32 Set’s / 32 Way's assoziativer Speicher.

Der Aufbau der 32 Bit für die Adressierung der Cachelines ist wie folgt:Der Index benötigt fünf Bit für die Adressierung der 32 Cachelines. In jeder Cacheline befinden sich 8 x 32 Bit Wörter, für diese 8 Wörter werden 3 Bit für den Byte offset benötigt, damit jedes 32 Bit Wort einzeln adressiert werden kann. Jede Cacheline besitzt einen 22 Bit langen Tag, ein Valid Bit und für jedes der 8 Daten Worte ein Paritätsbit. Damit ergibt sich eine Cacheline Länge von 287 Bit.Siehe Abb. 14 und 15.

HS Bremen WS 2002 / 2003 23

Page 24: 1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Rechnerstrukturen Intel XScale

7.1.1 Aufbau

Instruktion Cache Aufbau:

Abb. 14: Instruction Cache

Aufbau der Cacheline:

Insgesamt 287 Bit (Valid 1,Tag 22, 8x 33 Data + Parity)

Die Netto-Speichergröße berechnet sich aus: 32 Bit (Set) x 32 Bit (Way) x (8 x 32 Bit Daten) = 32 kByte

Die Brutto-Speichergröße berechnet sich aus:32 Bit (Set) x 32 Bit (Way) x 287 Bit (Cachline) = ca 36,7 kByte

HS Bremen WS 2002 / 2003 24

Valid Tag Data 1+Parity

Data 2+Parity

Data 3+Parity

Data 4+Parity

Data 5+Parity

Data 6+Parity

Data 7+Parity

Data 8+Parity

Abb. 15

Page 25: 1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Rechnerstrukturen Intel XScale

7.1.2 Betriebsmodi / Aktualisieren der Cachline

Die Ways des I-Cache mit den Nummern 0-28 können gesperrt werden. Die nicht gesperrten Cachelines der Sets werden im Round-Robin Ersetzungsverfahren aktualisiert. Beim Ersetzen einer Cacheline wird der gerade benötigte Befehl über einen " two-level-fetch-queue " aus dem Speicher geholt und zwar so, dass der benötigte Befehl an erster Stelle steht (von den 8 Befehlen pro Cacheline); Diese Methode bezeichnet Intel mit "critical word first". Der "two-level-fetch-queue" erlaubt dem I-Cache gleichzeitig auch den Zugriff auf den nächsten Befehl. Intruction- und Data Cache “Lock“ Modi und die Befehle für CP 15.

Beispiel mit gesperrten Ways und Auswirkungen auf den Round-Robin-Algorithmus.

Abb. 16 Round-Robin mit gesperrten Ways

7.2 Data Cache

7.2.1 Aufbau

Der Data Cache ist ein 32 Set’s / 32 Way's assoziativer Speicher.Der Aufbau der 32 Bit für die Adressierung der Cachelines ist wie folgt:

Der Index benötigt auch hier fünf Bits für die 32 Cachelines. Der Aufbau der Cacheline unterscheidet sich von dem des I-Caches dadurch, dass hier 32 x 8 Bit Worte abgelegt werden können. Für die 32 Bytes werden 5 Bit für den Byteoffset verwendet, damit jedes

HS Bremen WS 2002 / 2003 25

Page 26: 1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Rechnerstrukturen Intel XScale

Byte einzeln adressiert werden kann. Jede Cacheline hat einen 22 Bit Tag, ein Valid Bit, 2 Dirty Bit, ein Bit für jeweils 16 Byte und ein Paritätsbit für jedes Datenbyte (32). Damit ergibt sich eine Gesamtlänge der Cacheline von 313 Bit.Siehe Abbildung 17 und 18.

Aufbau des Data Cache:

Abb. 17 Data Cache

Aufbau der Cacheline:

Insgesamt 313 Bit (Valid 1,Tag 22, 32 x (8 Data + 1 Parity), 2 Dirty Bit)

Die Netto-Speichergröße berechnet sich aus: 32 Bit (Set) x 32 Bit (Way) x (32 x 8 Bit Daten) = 32 kByte

Die Brutto-Speichergröße berechnet sich aus:32 Bit (Set) x 32 Bit (Way) x 313 Bit (Cachline) = ca 40 kByte

HS Bremen WS 2002 / 2003 26

.....................................................

........

Valid Tag Data 1

+ P

Data 2

+ P

Data 32

+ P

Data 33

+ P

Abb. 18

2xDirty

Page 27: 1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Rechnerstrukturen Intel XScale

7.2.2 Betriebsmodi

Der Data Cache kann zusammen mit dem Mini Data Cache deaktiviert werden. Er kann wahlweise in den Modi Write-back oder Write-through betrieben werden. Der Data Cache und der (Mini Data Cache ) stellen in Zusammenarbeit mit dem “Fill Buffer / Pend Buffer " die Funktion "Hit under Miss" zur Verfügung.

7.2.3 Hit under Miss

Werden Daten angefordert, die nicht im Daten Cache (Miss) sind, werden die nächsten nicht von diesen Daten abhängigen Befehle (aus der Pipeline) von der CPU abgearbeitet. Diese Arbeitsweise funktioniert so lange die nachfolgenden Befehle nicht auch die fehlenden Daten benötigen, und die “Cachline Refill Engine“ (Fill Buffer und Pend Buffer ) die fehlenden Daten rechzeitig aus dem externen Speicher kopiert, bevor wieder weitere Misses auftreten. Insgesamt können von der “Cache Refill Engine“ bis zu 8 Misses bearbeitet werden.Der Data Cache ist “nonblocking“, d.h. während auf Daten eines Cache-Miss gewartet wird, können nachfolgende Anfragen bedient werden.Die Befehlsabarbeitung wird dadurch beschleunigt, weil kein Warten auf Daten nötig ist . Dies ist natürlich von den Folgebefehlen nach Auftreten eines Miss (Programmcode) abhängig.

7.3 Mini Data Cache

7.3.1 AufbauDer Mini Data Cache ist ein 32 Set’s / 2 Way's assoziativer Speicher.

Der Aufbau der 32 Bit für die Adressierung der Cachelines ist wie folgt:Der Index benötigt auch hier fünf Bit für die 32 Cacheline. In der Cacheline können hier 32 x 8 Bit Worte abgelegt werden. Für die 32 Bytes werden 5 Bit für den Byteoffset verwendet, damit jedes Byte einzeln adressiert werden kann. Jede Cacheline hat einen 22 Bit Tag, ein Valid Bit, 2 Dirty Bit (eins für jeweils 16 Byte) und für ein Paritätsbit für jedes Daten Byte. Damit ergibt sich eine Gesamtlänge der Cacheline für den Daten Cache von 315 Bit.

Siehe Abb. 20 und 21

HS Bremen WS 2002 / 2003 27

Abb. 19 Hit under Miss

Page 28: 1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Rechnerstrukturen Intel XScale

Aufbau Mini Data Cache:

Abb. 20 Aufbau mini Data-Cache

Aufbau der Cacheline:

Insgesamt 315 Bit (Valid 1,Tag 24, 32 x (8 Data + 1 Parity), 2 Dirty Bit)

Die Netto-Speichergröße berechnet sich aus: 32 Bit (Set) x 2 Bit (Way) x (32 x 8 Bit Daten) = 2 kByte

Die Brutto-Speichergröße berechnet sich aus:32 Bit (Set) x 2 Bit (Way) x 315 Bit (Cachline) = ca 2,5 kByte

7.3.2 Betriebsmodi

Im Mini Data Cache sind sich ständig ändernde Daten Streams (MPEG) gut aufgehoben. Er wird im Round-Robin-Modus betrieben. Der Mini Data Cache (und der DataCache ) in Zusammenarbeit mit "Fill- and Pend Buffer stellen die Funktion "Hit under Miss" zur Verfügung. Der Mini Data Cache kann nur zusammen mit dem Data Cache deaktiviert werden.

HS Bremen WS 2002 / 2003 28

....................................................

.........

Valid Tag Data 1+ P

Data 2+ P

Data32+ P

Data33+ P

Abb. 21

2xDirty

Page 29: 1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Rechnerstrukturen Intel XScale

8 Fill Buffer (FB) und Pend Buffer (PB)

Der FB arbeitet mit dem Prozessor zusammen und enthält nicht “cachable loads“, bis diese von dem Buscontroller bearbeitet werden können. Der FB und (die vier Einträge des) PB arbeiten mit dem D-Cache und Mini D-Cache und ermöglichen dadurch ein "Hit under Miss". Dies erlaubt dem Prozessor, auf andere Daten im Cache zuzugreifen, während die “Miss“ Daten aus dem Speicher geholt werden. Der FB kann bis vier ”Miss” Adressen enthalten. Der PB kann zusätzlich zu dem FB weitere vier Adressen aufnehmen.

9 Write Buffer (WB)

Der WB ist ein Zwischenspeicher für den Fall, dass gerade nicht auf den Bus zugegriffen werden kann. Der WB kann 8x16 Byte aufnehmen, ist immer aktiv und kann Daten vom Prozessor, D-Cache, I-Cache, und Mini D-Cache puffern.

10 Re-Konfiguration von Data Cache in RAM

Im Allgemeinen hat Software die Fähigkeit, Tags im Data Cache “festzuhalten“, dieses lässt Teile des D-Cache wie ein RAM wirken. Es gibt zwei Methoden, den D-Cache in ein RAM zu rekonfigurieren. Diese sind abhängig von den Anwendungen.

1. Sperren von Cachlines 2. Rekonfigurieren von Cachelines als Data RAM

Die erste Methode ist besonders geeignet für Lookuptables, Konstanten und alle Daten, die häufig gebraucht werden.

Die zweite Methode eignet sich für Anwendungen, deren Speicherbedarf größer ist als ein Registerfile und sich die benötigten Variablen möglicherweise auch noch verstreut im Speicher befinden. (Dadurch würden sich lange Zugriffszeiten auf diese Daten ergeben.)

Der Unterschied zwischen den beiden Methoden ist, dass bei der zweiten Methode die Line-Zuteilungsoperation dazu genutzt wird, um den Tag in der Cacheline zu sperren, so dass kein externer Speicherzugriff erfolgt. Ein weiterer Punkt ist, dass eine neu zugeteilte Cacheline erst initialisiert werden muss, bevor sie gelesen werden kann.Siehe nachfolgende Bespiele.

HS Bremen WS 2002 / 2003 29

Page 30: 1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Rechnerstrukturen Intel XScale

10.1 Data RAM erzeugen

Beispiel: Data RAM erzeugen

HS Bremen WS 2002 / 2003 30

Page 31: 1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Rechnerstrukturen Intel XScale

10.2 Locking Data into the Data Cache

Beispiel: Locking Data into the Data Cache

HS Bremen WS 2002 / 2003 31

Page 32: 1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Rechnerstrukturen Intel XScale

11 Pipelining

Der XScale- Prozessor verfügt im Wesentlichen über drei Pipelines. Diese Pipelines sind:

- eine 7stufige Main Execution Pipeline,- eine 8stufige Memory Pipeline- und eine 9stufige MAC Pipeline.

Diese drei Pipelines sind jedoch nicht vollkommen unabhängig von einander.

11.1 Die Main Execution Pipeline

Die folgende Abbildung zeigt die 7 Stufen der Main Execution Pipeline.

Abb.22: Main Execution Pipeline

Die Stufen 1) und 2) dienen zum Laden der standardmäßigen 32 Bit- Befehle bzw. der 16 Bit- Thumb-Befehle. Die Instruktionen werden dabei aus dem Speicher oder dem Cache geholt. Es sind zwei Stufen für diese Aufgabe notwendig, da der Speicher im Vergleich mit den aktuellen (bzw. zukünftigen) XScale Prozessoren relativ langsam ist. Zum Anderen wird, während sich ein Sprungbefehl in den ersten beiden Stufen befindet, eine eventuelles Sprungverhalten in der Vergangenheit geprüft. Hierzu wird die momentane Instruktion mit den Einträgen des Branch Target Buffer (BTB) verglichen (siehe Abschnitt 11.4).In der dritten Stufe erfolgt die Dekodierung der Instruktion (Aufteilung in Opcode, Quellregister etc.). In der folgenden Stufe wird dann auf entsprechende Registerinhalte zugegriffen. Anschließend folgen zwei Ausführungsstufen (hier benannt als Execute Instruction und Save State). In der ersten dieser beiden Stufen erfolgt die eigentliche Ausführung der Instruktion. In der zweiten Stufe werden interne Flags, die für die Steuerung der CPU erforderlich sind, gesetzt. Ist beispielsweise ein Fehler aufgetreten, ist es möglich, den vorherigen Zustand wiederherzustellen. In der letzen Phase werden schließlich Ergebnisse in die Register / den Cache / den Speicher zurückgeschrieben.

HS Bremen WS 2002 / 2003 32

Page 33: 1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Rechnerstrukturen Intel XScale

11.2 Die Memory Pipeline

Die Memory Pipeline des XScale Prozessors besitzt 8 Stufen, wobei diese Pipeline die ersten fünf Stufen der Main Execution Pipeline mitbenutzt. Nach Beendigung der Ausführungsstufe wird der Befehl in den Stufen Data Cache1, Data Cache2 und Data Cache Writeback weiter ausgeführt. Diese Pipeline ist für die Ausführung von Load- / Store- Befehlen vorgesehen.

Abb.23: Main Execution Pipeline, Memory Pipeline und MAC Pipeline

11.3 MAC-Pipeline

Diese Pipeline dient zur Ausführung der speziellen MAC- Instruktionen, des Koprozessors CP0, die alle mehr als einen Takt- Zyklus benötigen. Die MAC Pipeline besteht aus 9 Stufen.Dabei werden die ersten vier Stufen der Main Execution Pipeline genutzt. Die zusätzlichen Stufen dieser Pipeline sind MAC1, MAC2, MAC3, MAC 4. Als letzte Stufe wird die Writeback- Stufe der Main Execution Pipeline genutzt. Je nachdem, wie viele Takt- Zyklen für die Ausführung einer MAC Instruktion benötigt werden, kann die Pipeline bereits nach der MAC2- Stufe verlassen werden. Dies ist in der obigen Abbildung durch die Bezeichnung Mx symbolisch dargestellt.

HS Bremen WS 2002 / 2003 33

Page 34: 1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Rechnerstrukturen Intel XScale

11.4 Branch Target Buffer (BTB)

Der BTB ist ein zusätzlicher Speicher, in dem bereits ausgeführte Sprungbefehle zwischengespeichert werden. Der BTB enthält 128 Einträge. Jeder Eintrag enthält die jeweilige Adresse des Sprungbefehls, die dazugehörige Sprungadresse, sowie zwei Statusbits.Abbildung 24 zeigt die Information, die in den beiden Statusbits kodiert sind.Wird ein Sprungbefehl das erste Mal ausgeführt, und seine Sprungbedingung ist erfüllt , so wird er in den BTB eingetragen. Die Statusbits kodieren in diesem Fall den Status WEAKLY TAKEN. Je nachdem, ob die Sprungbedingung dieses Befehls bei seiner nächsten Ausführung erfüllt ist oder nicht, wechselt der Status des Befehls im BTB nach STRONGLY TAKEN bzw. WEAKLY NOT TAKEN. Die weiteren Zustandsübergänge verdeutlicht Abbildung 24.Ein Nachteil der XScale Architektur gegenüber seinem Vorgänger, dem StrongARM ist, dass bei falsch vorhergesagten Sprüngen eine Latenzzeit von 4 – 5 Taktzyklen entsteht. Beim StrongARM ergab sich eine Latenzzeit von nur einem Taktzyklus.

Abb. 24: Zustandübergänge von Einträgen im BTB

HS Bremen WS 2002 / 2003 34

Page 35: 1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Rechnerstrukturen Intel XScale

12 Power Management

Der XScale Prozessor wurde von INTEL entwickelt, um das Problem des hohen Stromverbrauchs von PDA's, Handys und ähnlichen mobilen Kleingeräten zu reduzieren. Intel preist seinen neuen Prozessor mit dem Schlagwort „Low Power, High Performance“ an. Die Ziele wurden recht hochgesteckt. Nach eigenen Angaben sollen zukünftige XScale Prozessoren bei einer Taktrate von 1GHz mit einer Versorgungsspannung von 1,8 V auskommen. Dabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen.

12.1 Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Die aktuellen XScale Prozessoren PXA210 und PXA250 ordnet Intel im Vergleich zum StrongARM folgendermaßen ein:

Prozessor Taktfrequenz MIPS Spannung VerbrauchStrongARM 206 MHz 235 1,75 V 300 mWPXA210 200 MHz 200 0,70 V 50 MWPXA250 400 MHz 500 1,00 V 180 mW

In das Vergleichsfeld aktueller PDA- Prozessoren würden sich die XScale Varianten mit den von Intel gemachten Vorgaben wie folgt einordnen.

Abb. 25 PDA- Prozessoren im Vergleich

Die Leistungsangaben sind jedoch mit Vorsicht zu genießen, da die Taktfrequenz der verschiedenen Prozessoren doch sehr stark variieren. Die Angaben zum Verbrauch hingegen, lassen auf gut entwickeltes Power Management hoffen.

HS Bremen WS 2002 / 2003 35

Page 36: 1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Rechnerstrukturen Intel XScale

12.2 Realisierung des Power Management

Für den erwarteten geringen Stromverbrauch der XScale Prozessoren gibt Intel verschiedene Gründe an. So spricht Intel zum Beispiel von einer geringen Anzahl von Transistoren. Es ist jedoch in keinem Dokument erwähnt, wie viele Transistoren die XScale Prozessoren besitzen.Zum Anderen ist der 0,18-Micron-Prozess, in dem diese Prozessoren gefertigt sind, ein weiterer Grund für die geringe Leistungsaufnahme. Durch die erreichte hohe Packungsdichte nimmt der eigentliche Prozessorkern bei den aktuellen XScale Varianten PXA210 und PXA250 nur ca. 15% der gesamten Chipfläche ein. Der Rest wird für Energiesparmaßnahmen und verschiedene Schnittstellen verwendet. Wegen der großen Anzahl von Schnittstellen bezeichnet Intel den XScale auch als Applikationsprozessor.

Eine Neuerung bei den XScale Prozessoren ist die sog. Automatic Clock Gating- Technologie. Da nicht alle Teile des Prozessors zu jeder Zeit benötigt werden, ist es möglich zeitweise Transistoren bzw. Transistorgruppen abzuschalten. Inwiefern dies genau realisiert wird, ist aber keinem Dokument zu entnehmen.

Je nachdem, wie viele Komponenten (und für welche Zeit) abgeschaltet sind, unterscheidet Intel zwischen verschiedenen Betriebsmodi. Im Run- Mode sind alle Komponenten aktiv.Kleinere Phasen der Inaktivität einiger Komponenten bezeichnet Intel als Idle Mode. Nach den Vorstellungen Intels können zwischen aufeinander folgenden Tastatureingaben Teile des Prozessors abgeschaltet werden. In diesem Modus soll der XScale den Verbrach auf 100 mW reduzieren können. Während einer längeren Arbeitspause des Prozessors könnten nahezu alle Komponenten abgeschaltet werden. Dieser Modus wird von Intel als Sleep Mode bezeichnet. Der Verbrauch in diesem Modus soll bis auf 50 µW abgesenkt werden.

Ein weiterer Vorteil (laut Intel) bringt die Tatsache mit sich, dass alle Frequenzen auf dem Prozessorchip über einen einfachen, verbrauchsarmen Frequenzkristall und verschiedenen Phase Locked Loops(PLL’s) erzeugt werden. Die nachfolgende Abbildung zeigt die Realisierung dieser Technik.

Abb.26 Generierung verschiedener Frequenzen aus einem Frequenzkristall und PLL’s HS Bremen WS 2002 / 2003 36

Page 37: 1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Rechnerstrukturen Intel XScale

Die Generierung aller Frequenzen aus einem Frequenzkristall und den PLL’s bringt aber noch einen weiteren Vorteil mit sich. Bei den neuen XScale Prozessoren ist die Taktfrequenz programmierbar. Somit kann bei nichtbenötigter voller Leistung (z.B. Abspielen von Audiodateien) die Taktfrequenz des Prozessors herabgesetzt werden.Für das notwendige schnelle Umschalten zwischen den verschiedenen Frequenzen hat Intel den Turbo Mode vorgesehen. In diesem Modus kann kurzzeitig das 1,5fache oder 2,3fache der eigentlichen Taktfrequenz erreicht werden, in dem die PLL’s umgangen werden.

Das Power- und Clock- Management kann über die Register 6 und 7 des Koprozessors CP14 konfiguriert werden. Wie in den folgenden Abbildungen zu erkennen ist, sind noch nicht alle Bits dieser Register definiert. Zur Zeit kann also noch nicht die gesamte Fähigkeit der XScale Prozessoren ausgenutzt werden.

Abb.27: PWRMODE Register zur Konfiguration des Power Managements

Abb.28: CCLKCFG Register zur Konfiguration des Clock Managements

Welche Bedeutung die bereits durch die ASSP definierten Bits haben, konnte man bisher keinem Dokument entnehmen.

HS Bremen WS 2002 / 2003 37

Page 38: 1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Rechnerstrukturen Intel XScale

13 Benchmarks

13.1 Laufzeiten von PDAsObwohl Intel mit großen Vorstellungen im Vorfeld den XScale ankündigte, konnte der erste PDA, der diesen Prozessor verwendete, der Pocket Loop von Fujitsu Siemens, im Test nicht überzeugen. Abbildung 29 zeigt die Testergebnisse für den Laufzeittest mit Licht. Bei diesem Test wird über eine Konstruktion ein Tastendruck simuliert. Dieser Tastendruck erfolgt einmal pro Sekunde. Es wird dabei registriert, wann der PDA abschaltet. Somit erhält man eine auf die Sekunde genaue Laufzeit.

Abb.29: Laufzeittest von PDA’s mit Licht

Vergleichbar in dieser Darstellung sind eigentlich nur die Pocket Loop Varianten und der Compaq iPaq H3850, das diese annähernd gleiche Taktfrequenzen haben. Wie man sieht, übertreffen die PDA’s mit den XScale Prozessoren nur gering das Modell mit dem Vorgänger(StrongARM). Im Laufzeittest ohne Licht (Abb.30) schneiden die XScale- PDA’s sogar deutlich schlechter ab als der StrongARM- PDA.

Abb.30: Laufzeittest von PDA’s ohne Licht

Das Problem, das hierbei zu Tage tritt, ist, dass das Betriebssystem PC2002 von Microsoft das Power Management der XScale Prozessoren noch nicht unterstützt und laut Microsoft auch erst in einer neueren Version die neuen Features des XScale nutzen wird.Eine Ausnahme bildet der ASUS PDA MyPal AD600, der mit Hilfe einer von Asus entwickelten Technik das Power Management der XScale Prozessoren teilweise nutzen kann. Dieser PDA kommt im Test auf Werte von 300 min (mit Licht) und 810 min (ohne Licht).

HS Bremen WS 2002 / 2003 38

Page 39: 1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Rechnerstrukturen Intel XScale

13.2 Leistungstests

Durchgeführt wurden diese Tests mit Hilfe der Freeware Software VO Benchmark 2.0.Beim Integer Benchmark (Abb.31) ist deutlich zu erkennen, dass der PDA mit einem 200Mhz- XScale Prozessor hinter dem PDA mit einem 206MHz-StrongARM Prozessor (Compaq iPaq H3850) bleibt. An der Spitze des Testfeldes liegt der Pocket Loox mit einem 400MHz- XScale Prozessor, was wegen der doppelt so hohen Taktfrequenz gegenüber den anderen Prozessoren nicht verwunderlich ist.

Abb.31 VO Benchmark Integer

Beim Floating Point Benchmark ergibt sich ein ähnliches Bild wie beim Integer Benchmark.Nur der PDA mit der 400MHz-XScale CPU zeigt eine bessere Leistung. Der PDA mit dem 200MHz-XScale Prozessor jedoch findet sich am Ende des Testfeldes wieder.

Abb.32: VO Benchmark Floating Point

HS Bremen WS 2002 / 2003 39

Page 40: 1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Rechnerstrukturen Intel XScale

14 Peripherie

Der Intel PXA250 Prozessor lässt in punkto Peripherie kaum Wünsche offen. Er unterstützt eine Vielzahl von gängigen standardisierten Schnittstellen, z.B.

USB Memory Controller Clock and Power Controllers Universal Serial Bus Client DMA Controller LCD Controller I2C Multi Media Card Synchronous Serial Protocol Port Bluetooth

Weitere Schnittstellen siehe Bild unten.

Abb.33: Peripherie des PXA250

Die Leistungsfähigkeit des LCD-Controller wird deutlich, wenn man sich einige Features wie das Unterstützen von Single- oder Dual-Panel Displays, alle gängigen Auflösungen bis 1024x1024 Pixel und 16 Bit Farbtiefe vor Augen führt. Damit ist ein PDA- Prozessor wirklich für alle Eventualitäten gerüstet.

HS Bremen WS 2002 / 2003 40

Page 41: 1 · Web viewDabei sollen diese Prozessoren 1500 MIPS schaffen und einen Leistungsverbrauch von nur 1,6 Watt aufweisen. Leistungs- und Verbrauchsangaben für aktuelle XScale Prozessoren

Rechnerstrukturen Intel XScale

15 Quellen

Webseiten:

www.arm.com (ARM- Architektur + Befehlssatz)

www.tecchannel.de (Power-Management der XScale Prozessoren)

ASSP Application Specific Standard Product

http://developer.intel.com/design/xscale/index.htm

--> Unter dieser Adresse finden sich unter anderem die folgenden PDF-Dokumente :

- PDA-Technologien für die Zukunft- Intel® XScale™ Microarchitecture- Intel product brief- Intel® XScale™ Core- Intel® PXA26x Processor Family

HS Bremen WS 2002 / 2003 41