1 · web viewdabei sollen diese prozessoren 1500 mips schaffen und einen leistungsverbrauch von nur...
TRANSCRIPT
Intel XScaleRechnerstrukturen
WS 2002 /2003Prof. Risse
Bearbeitet von:Bayram AkpunarVedat TüfekcilerJan Lehmkuhl
Datum: 25.12.2002
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Rechnerstrukturen Intel XScale
10.1 Data RAM erzeugen
Beispiel: Data RAM erzeugen
HS Bremen WS 2002 / 2003 30
Rechnerstrukturen Intel XScale
10.2 Locking Data into the Data Cache
Beispiel: Locking Data into the Data Cache
HS Bremen WS 2002 / 2003 31
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
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
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
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
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
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
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
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
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
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