single vs - Weblearn
Transcription
single vs - Weblearn
single vs. dual core Leistungsvergleich mobiler Intel-Systeme vorgelegt von Frank Kuchta Matrikel-Nr. 127685 Markus Rüger Matrikel-Nr. 125575 Semester I7I Im Fach Rechnerstrukturen – Labor bei Herrn Prof. Dr. Thomas Risse Hochschule Bremen – Fachbereich 4, Elektrotechnik & Informatik Frank Kuchta, Markus Rüger single vs. dual core RST-L WS06/07 Inhaltsverzeichnis 1. 2. 3. Motivation ............................................................................................................ 3 Ziel & Aufgabendefinition..................................................................................... 3 – Hardware - Architektur....................................................................................... 4 3.1. Pentium M Serie (Banias - Architektur) ........................................................ 5 3.2. W eitere n tw icklu n g C o d e n a m e : „D o th a n“...................................................... 7 3.3. Dual-C o re P ro ze sso r “Y o n a h” ...................................................................... 7 3.4. Intel Core 2 Duo / Intel Core-Mikroarchitektur .............................................. 9 4. Testumgebung................................................................................................... 10 4.1. Hardware .................................................................................................... 10 4.2. CPU Z ........................................................................................................ 12 5. Benchmarks ...................................................................................................... 12 5.1. Vorbetrachtung ........................................................................................... 12 5.1.1. Software .............................................................................................. 12 5.1.2. Anwendertests .................................................................................... 13 5.2. Kompression .............................................................................................. 13 5.3. Audio .......................................................................................................... 15 5.4. Video .......................................................................................................... 16 5.5. Grafik Rendering ........................................................................................ 18 5.6. Zwischenbetrachtung ................................................................................. 21 5.7. RSA Verschlüsselung ................................................................................. 19 5.8. SyncAccess ................................................................................................ 21 5.9. DualSlow .................................................................................................... 24 6. Fazit................................................................................................................... 29 7. Quellen .............................................................................................................. 31 8. Anhang .............................................................................................................. 35 8.1. Reports der verwendeten Systeme ............................................................ 35 8.1.1. Single Core Systeme .......................................................................... 36 8.1.2. Dual Core Systeme ............................................................................. 38 Abbildungsverzeichnis Abbildung 1: Banias-Kern [Banias] ............................................................................. 5 Abbildung 2: Dothan-Kern [Dothan] ............................................................................ 7 Abbildung 3: Yonah-Kern [Yonah] .............................................................................. 8 Abbildung 4: Merom-Kern [Merom] ............................................................................. 9 Abbildung 5 Kompression Benchmark-Ergebnisse ................................................... 14 Abbildung 6: Screenshot von LAME ......................................................................... 15 Abbildung 7: Audio Benchmark-Ergebnisse ............................................................. 16 Abbildung 8: Video Benchmark-Ergebnisse ............................................................. 17 Abbildung 9: Cinebench Benchmark-Ergebnisse ..................................................... 18 Abbildung 10: RSA Benchmark-Ergebnisse ............................................................. 20 Abbildung 11: SyncAccess Benchmark-Ergebnisse ................................................. 22 Abbildung 12: DualSlow-Benchmark, Datengröße bis 2000kByte ............................ 25 Abbildung 13: DualSlow: absolvierte Schleifendurchläufe / Zeit (1) .......................... 26 Abbildung 14: DualSlow: absolvierte Schleifendurchläufe / Zeit (2) .......................... 27 Abbildung 15: DualSlow-Benchmark, Datengröße bis 3000kByte ............................ 28 Abbildung 16: Preisübersicht aktueller Notebooks [Saturn] ...................................... 29 Abbildung 17: Preisübersicht Intel mobile Prozessoren [alternate] ........................... 30 Seite 2 von 39 Frank Kuchta, Markus Rüger single vs. dual core RST-L WS06/07 1. Motivation Der PC-Markt hat in diesem Jahr eine Kehrtwende erlebt. Das Ende immer höherer Taktfrequenzen scheint erreicht. Die Erhöhung der Taktfrequenz erfordert eine höhere Betriebsspannung. Die Leistungsaufnahme wächst jedoch mit dem Anstieg der Spannung ungefähr quadratisch. Daher hat man sich dazu entschieden, Entwicklungen in Richtung von Taktraten im Bereich von 10 GHz nicht weiter zu verfolgen. Der Chiphersteller Intel hat mit aufwendigen MarketingM a ß n a h m e n d ie Z e ite n d e s „M u lti-C o re“ S yste m s e in g e läu te t. „M u ltiplizie ren S ie Ih re Möglichkeiten und die Ihres C o m p u te rs“ [Zitat Intel 1] heißt es in einer Werbebotschaft auf der Internet-Seite des Marktführers im PC Prozessor-Umfeld. Im Endkunden – Bereich werden derzeit Dual-Core-Prozessoren beworben, die im Gegensatz zu bisher üblichen Rechenwerken aus zwei Prozessor-Kernen bestehen. Für den Business- bzw. Server-Bereich sind bereits Quad-Core-Prozessoren verfügbar. Es ist geplant die Entwicklung nun zu immer mehr Kernen zu treiben, und nicht wie bisher die Leistungssteigerung durch Erhöhung der Taktrate zu erreichen. Dem Endkunden stellt sich die Frage, welche Vorteile sich für Ihn ergeben. Die Hersteller werben bei Dual-Core-S yste m e n m it e in e r „d o p pe lte n P ro ze sso rleistu ng fü r m e h r M u ltita skin g “ [Zitat Intel 2]. Aber was steckt wirklich dahinter? Wie hoch sind der Leistungsgewinn und der praktische Nutzen wirklich? Diese konkreten Fragen von Anwendern wollen wir mit dieser Ausarbeitung auf den Grund gehen. 2. Ziel & Aufgabendefinition Um uns der Fragestellung der Anwender zu nähern werden wir nachfolgend die wesendlichen Änderungen in der Architektur von Single- und Dual-Core Prozessoren erläutern. Wir werden einen Leistungsvergleich auf Anwendungsebene durchführen, um direkt eine Aussage zum praktischen Nutzen eines Dual-Core-Systems geben zu können. Des Weiteren werden wir die Systeme auf technischer Ebene beleuchten, um ggf. Probleme bzw. Schwachstellen auszumachen. Ziel ist es, für die verschiedenen Fälle einen Beschleunigungsfaktor anzugeben. Wir beschränken unsere Betrachtungen auf die derzeitigen Prozessoren der Firma Intel, die für den mobilen Einsatzbereich konzipiert sind. Hier stehen uns geeignete Geräte für Leistungsmessungen innerhalb des Semesterverbandes zur Verfügung. Die Prozessoren im Desktop- bzw. Server-Bereich werden für andere Anforderungen entwickelt und lassen sich deshalb nicht direkt mit den Mobil-Prozessoren vergleichen. Seite 3 von 39 Frank Kuchta, Markus Rüger single vs. dual core RST-L WS06/07 Zudem stehen uns hierfür keine Geräte zur Leistungsmessung zur Verfügung. Ebenso fehlen vergleichbare Geräte von anderen Herstellern, z.B. AMD. 3. –Hardware - Architektur Im wesendlichen gibt es fünf Architekturen der Firma Intel, die heutzutage in mobilen Geräten zu finden sind. Die so genannte P6-Core-Architektur, auf der der Pentium III basierte, stammt im Ursprung vom PentiumPro aus dem Jahre 1995 ab. Mobile Pentium III Prozessoren basieren auf dieser Architektur. Die Netburst – Architektur stellte den Nachfolger dar, sie wurde für den Pentium 4 entwickelt. Sie wurde im Jahre 2006 eingestellt, nachdem sich ein Ende bei der Erhöhung der Taktfrequenz abzeichnete. Es gibt drei mobile Varianten des Pentium 4. Da die Netburst – Architektur jedoch sehr viel Energie benötigt sind diese Prozessoren nicht sehr erfolgreich gewesen. Die erste Serie von Prozessoren, die im Jahre 2003 konsequent für den mobilen Anwendungsbereich entwickelt wurde, ist die Banias – Architektur. Diese finden wir h e u te in de n m e iste n N o teb o o ks die u n ter d em L a b e l „C e n trino “ od e r P e n tiu m M verkauft werden. „Yonah“ ist als vierte wichtige Architektur zu nennen. Dabei handelt es sich um den ersten mobilen Dual-Core Prozessor der Firma Intel, der im Jahre 2006 erschienen ist. Er basiert dem „Banias“ b zw . „D o th an “-Kern und wird deshalb auch noch unter d ie ser A rchite ktu r au fg e füh rt. V e rtrie b en w ird e r u n ter d e m N a m e n „C o re S o lo “ w e n n e r n u r ü b e r ein e n K ern ve rfü g t b zw . als „C o re D u o “ in d er D u al-Core Variante. Im Herbst 2006 wurde die Intel Core-Mikroarchitektur vorgestellt. Hier wurden im B e zu g a u f d en V o rg ä ng e r „Y o n a h “ einig e Ä n de ru n g en d u rch g e fü hrt, die zu ein er eigenen neuen Architektur führten. Der neu entstandene Mobil-Prozessor „M e ro m “ trä g t d e n H a nd eln a m e n „C o re 2 D uo“.Z u de m w u rd e d ie E n tw icklu ng m it d e r Desktop- und Server-Sparte wieder zusammengeführt. Aufgrund der vielfältigen Prozessorlandschaft müssen wir unsern Focus eingrenzen. Derzeit sind Notebooks mit den Prozessor-K ern e n „D oth a n“, „Y o n ah “ u nd „M e ro m “ e rh ä ltlich . Die Architekturen dieser Prozessoren werden wir genauer beleuchten. Vorrab seien kurz einige allgemein gültigen Dinge erläutert: Die typische Verlustleistung von Prozessoren wird als „T h e rm a l D e sig n P o w e r“ (TDP) bezeichnet und in Watt gemessen. Diese wird als Grundlage zur Berechnung der Kühlung verwendet. Mit speziellen CPU-Testprogrammen simuliert der ChipHersteller eine typische Verwendung seines Produktes. Dabei wird der TDP-Wert ermittelt. Jeder Hersteller tut dies nach seinen eigenen Vorgaben, die nicht öffentlich sind. Daher geben die TDP-Werte nicht unbedingt Aufschluss über die tatsächlich Seite 4 von 39 Frank Kuchta, Markus Rüger single vs. dual core RST-L WS06/07 umgewandelte Leistung. Zudem spiegelt der TDP-Wert nicht die maximale th e rm isch e B e la stu n g w ied e r, d a die C P U b eim T e st „typisch “ u n d nich t m a xim a l belastet wird. 3.1. Pentium M Serie (Banias - Architektur) Bei der Banias – Architektur wurde die gesamte Entwicklung für eine Verwendung im Mobilbereich ausgerichtet. Es galt also, den Stromverbrauch zu verringern, die Leistungsfähigkeit zu steigern und den Ansprüchen für mobiles Arbeiten gerecht zu werden. Abbildung 1: Banias-Kern [Banias] Dazu wurde unter anderem die Micro-Ops Fusion Technologie eingeführt. Bevor die Micro-Ops in den Scheduler gelangen, wird analysiert welche Operationen sich zusammenfassen lassen. Somit wird der Scheduling-Aufwand reduziert. Erst vor den parallelen Ausführungseinheiten werden Befehle wieder in einzelne Micro-Ops zerlegt und auf die Einheiten aufgeteilt. Dadurch muss der Scheduler weniger Einträge verwaltet, was die Performance steigert und den Energiebedarf reduziert. Diese Technik wurde auch auf Prozessoren der Netburst - Architektur angewandt. Zudem wurde ein spezieller Ablaufmanager integriert. Befehle die sonst zu z.B. zu Unterbrechungen führen würden werden von dieser dedizierten Hardware abgearbeitet. Dies sind z.B. die Stack-Operationen push, pop, call und ret. Dadurch können die Ausführungseinheiten ohne Unterbrechung das eigentliche Programm bearbeiten. Durch falsche Sprungvorhersagen kommt es häufig zu Stalls und Befehlswiederholungen. Dies kostet Performance und erhöht den Stromverbrauch. Deshalb wurde die Banias-Architektur mit einer "Advanced Branch Prediction" ausgestattet. Seite 5 von 39 Frank Kuchta, Markus Rüger single vs. dual core RST-L WS06/07 Dabei handelt es sich um drei Vorhersage-Einheiten, wobei der Prozessor selbst den für den Anwendungsfall besten Predictor auswählt. Es gibt einen globalen, einen bimodalen sowie einen Schleifen Predictor. Der bi-modale Predictor ist im wesendlichen eine Moore-Maschine mit 4 Zuständen. Dabei wird zwischen den Zuständen Strongly not taken, Weakly not taken, Weakly taken und Strongly taken unterschieden. Dabei werden die letzten Bits der Instruktion genommen, um auf eine der Moore-Maschinen zu verweisen. Bei dem globalen Predictor handelt es sich um eine Index-Tabelle, die auf einzelne bi-modale Predictoren verweist. Der Schleifen Predictor besteht aus zwei IndexTabellen und hat die Aufgabe korekte Vorhersagen für die Schleife als auch für den Abbruch zu tätigen. Ausführeinheiten bzw. Teile davon, die für eine Befehlsabarbeitung nicht benötigt werden, können automatisch abgeschaltet werden. Das Ein- und Ausschalten geschied innerhalb eines Taktzykluses. Durch diese Funktion wird Energie eingespart. Der Level-2 Cache des Banias ist 8-fach assoziativ und verfügt über eine Kapazität von 1 MByte. Jede Cachline ist in 4 Bereiche unterteilt. Ein Quadrant Selector kann gezielt jedes der insgesamt 32 Felder ansprechen. Felder, die nicht belegt sind, werden in einen Energiesparmodus geschaltet. Jeder Prozessor verfügt über Buffer-Schaltungen, die die Busspannungen für den Prozessor konvertieren. Diese Schaltkreise haben einen sehr hohen Energiebedarf. Bei der Banias - Architektur werden diese nur bei Bedarf mit Strom versorgt. Jeder Prozessor verfügt über Buffer-Schaltungen, die die Busspannungen für den Prozessor konvertieren. Diese Schaltkreise haben einen sehr hohen Energiebedarf. Beim Banias werden diese nur bei Bedarf mit Strom versorgt. Die Banias - Architektur kann wie schon die Pentium-4-Prozessoren die SSE2 Befehle verarbeiten. Dabei handelt es sich um 144 neue zusätzliche Befehle, u.a. sind nun 128 Bit breite Integer- und Floating-Point-Operationen möglich. Da jedoch n u r 6 4 B it A L U ’s vo rh a n d en sin d , m ü sse n d iese in zw e i S ch ritte n a u sg e fü h rt w e rd e n . Der Front-Side-Bus wird mit 400 MHz getaktet. Zudem ist es möglich die Taktfrequenz und Core-Spannung dynamisch an die Prozessorleistung anzupassen. Dies ermöglicht eine weitere Energieeinsparung. Der Banias-Kern wurde mit einer Strukturbreite von 130nm gefertigt. Je nach Version gab es Taktraten von 1.3 bis 1.7 GHz. Dabei hatte die 1,7 GHz Version eine Leistungsaufnahme von 24,5 Watt TDP. Vertrieben wurde der Banias-Prozessor unter den Handelsnamen Pentium M bzw. Centrino bis er vom Prozessor mit dem Codenamen Dothan abgelöst wurde. Seite 6 von 39 Frank Kuchta, Markus Rüger 3.2. single vs. dual core RST-L WS06/07 W eiteren tw icklu n g C o d en am e: „D o th an “ Abbildung 2: Dothan-Kern [Dothan] Der Dothan-Core ist der Nachfolger des Banias. Hier wurden einige Dinge geändert: Die Strukturbreite wurde auf 90nm reduziert. Daher war es auch möglich, die Größe des Level-2 Caches auf 2 MByte zu erhöhen und die Die-Größe nahezu beizubehalten. Der L2-Cache ist 4-fach assoziativ. Die Prozessortaktrate wurde auf bis zu 2 GHz erhöht. Die geringere Fertigungstechnik ermöglicht es unter anderem auch, dass die Leistungsaufnahme bei 1,7 GHz auf 21 Watt TDP gegenüber dem Banias mit 24 Watt TDP gesenkt werden konnte. Es wurde ein so genannter Enhanced Data Prefetcher integriert. Dieser lädt vorausschauend Daten in den L2-Cache, die demnächst benötigt werden. Die Geschwindigkeit des Front-Side-Bus wurde auf 533 MHz erhöht. Daher unterstützt der Dothan-Prozessor nun auch DDR2-Arbeitsspeicher. Der Dothan-Prozessor wird unter den Handelsnamen Pentium M bzw. Centrino vertrieben. 3.3. Dual-C o re P ro zesso r “Y o n ah ” Der Dual-Core-P ro ze sso r “Y o n a h ” b e ste h t im w e se n d lich e n au s zw e i “D o th a n ”Kernen. Diese verfügen jedoch über einen gemeinsamen Level-2 Shared Cache, der 2 MByte groß ist. Beide Kerne sind in der Lage bei Bedarf den ganzen Cache zu nutzen. Dies ist z.B. sinnvoll, wenn Programme in nur einem Thread laufen. D ie „D a ta S h arin g “ F u n ktion des Caches ermöglicht es, das Daten die von beiden Ausführeinheiten benötigt werden, nur einmal gemeinsam im Cache abgelegt werden. Seite 7 von 39 Frank Kuchta, Markus Rüger single vs. dual core RST-L WS06/07 Abbildung 3: Yonah-Kern [Yonah] Das dieser Shared-Cache auch nachteilig sein kann, werden wir im späteren Verlauf genauer aufzeigen. Der Yonah-Kern wird in 65nm Technik gefertigt. Dies reduziert den Energiebedarf, da die Leckströme verringert werden konnten und die Kernspannungen gesenkt wurden. Der Dual-Core Prozessor ist mit einer Leistungsaufnahme von 31 Watt TDP angegeben. Weitere Energiesparmaßen wurden integriert. So kann z.B. der Inhalt des Caches komplett in den Arbeitspeicher geladen werden, wenn beide Kerne keine Berechnungen durchführen. Die Versorgungsspannung des Caches kann dann abgeschaltet werden. Diese Funktion nennt Inte l „E n h a n ced D e e p er S le e p “. Die Abschaltung momentan nicht genutzter Bereiche des Caches im Betrieb, funktioniert genauso wie schon bei der Banias - Architektur. Der CPU Lüfter wird von einem Baustein gesteuert, der die Prozessortemperatur stetig überwacht. Die Decodierungseinheiten des Yonah-Kerns können nun direkt die 128-Bit langen SSE2-Befehle verarbeiten. Die Micro-Ops Fusion funktioniert nun ebenfalls auch für sie. Die Abarbeitung von Division von Integer-Daten wurde ebenso wie einige SSE2Befehle um ca. 30 Prozent beschleunigt. Der Yonah-Kern unterstützt die neuen Befehle der SSE3. Diese sind im wesendlichen für komplexe Arithmetik, Wandlung von Gleitpunktzahlen in Ganzzahlen und Grafik-Aufbereitung. Darüber hinaus wurde beim Yonah die Geschwindigkeit bei Integer-Divisionen deutlich erhöht, vorrausgesetzt Dividend und Divisor liegen nahe beieinander. Die Geschwindigkeit des Front-Side-Bus wurde nochmals erhöht. Sie beträgt nun 667 MHz. Vermarktet wird der Prozessor unter dem Handelsnamen Intel Core Duo. Prozessoren: Seite 8 von 39 Frank Kuchta, Markus Rüger 3.4. single vs. dual core RST-L WS06/07 Intel Core 2 Duo / Intel Core-Mikroarchitektur Abbildung 4: Merom-Kern [Merom] Im Herbst 2006 wurde die neue Intel Mikroarchitektur eingeführt. Dabei wurde die Entwicklung der Bereiche Server, Workstation und Mobile wieder zusammengeführt. D e r m o b ile P ro ze sso r trä g t d e n C od e n a m e n „M e ro m “. Hier wurden einige neue Funktionen, aber auch bereits existierende Funktionalitäten aus anderen Prozessorfamilien integriert. Intel stellt diese unter sehr fragwürdigen bzw. teilweise unpassenden Namen da. „W id e D yn a m ic E xce tu tio n “ be sch reibt im w e se n d lich e n d a s Z iel, im m e r m e h r Befehle pro Cycle zu verarbeiten. Dahinter verbergen sich drei Funktionen: Die Micro-Ops Fusion ist bereits vom Banias bekannt. Dazu wurde eine Macro-Op Fusion eingeführt. Die komplexe Decodereinheit ist in der Lage zwei x86-Befehle in einem Takt zu decodieren. Dabei muss es sich jedoch um einen Vergleich sowie um einen konditionalen Sprung handeln. Diese Kombination ist sehr häufig bei IF-THENELSE Kombinationen. Da beim Merom drei einfache Decodereinheiten sowie ein komplexer Decoder vorhanden sind, ist der Prozessor unter idealen Bedingungen in der Lage 5 x86-Befehle pro Cycle zu verarbeiten. Der Extended Stack Pointer bildet die dritte Funktion. Dabei handelt es sich um einen dedizierten Baustein der Stackpointer-B e fe hle b e a rb eite n . B ish e r w u rd en „p u sh “, „p o p “, „h e ap “ u sw , vo n ein er In te g e r-ALU bearbeitet. H in ter d er B e zeich n u ng „S m a rt M e m o ry A cce ss“ ve rb erg e n sich zw e i Funktionalitäten, die die Bereitstellung der benötigten Daten optimieren sollen. Bei der Memory Disambiguation werden load & store Operationen neu sortiert, falls sie nicht von einander abhängig sind. Dadurch können load-Operationen schneller ausgeführt werden, weil nicht vorab gewartet werden muss bis eine sonst vorhergehende store-Operation abgeschlossen ist. Zusätzlich gibt es nun auch für den L1-Data-Cache als auch für die Instruktionen Prefetcher-Einheiten. Seite 9 von 39 Frank Kuchta, Markus Rüger single vs. dual core RST-L WS06/07 H in ter d e m p o m p ö se n N a m e n „A d va n ce d D igita l M e dia B o o st“ ve rste ckt sich nichts anderes als die Tatsache, dass der Merom-Kern nun über 3 SSE Ausführungseinheiten verfügt. Diese sind in der Lage direkt 128 Bit SSE Befehle in einem Takt zu verarbeiten. Der L2-Data-Cache ist wie schon beim Yonah ein Shared-Cache. Er verfügt nun jedoch über eine Kapazität von 4 MByte. Die Entwicklung im Bereich der Energiesparmaßnahmen wurde fortgeführt. Die Abschaltung nicht verwendeter Teile des Prozessors wurde verfeinert. So können nun Bereiche des Datenpfades abgeschaltet werden, die nicht benötigt werden. Z.B. wenn die zu transferierenden Daten nicht die gesamte Bitbreite des Datenpfades benötigen. D e r m o b ile P ro ze sso r u n terstü tzt nu n e rstm a ls d ie „E xte n d e d M e m o ry 6 4 T e ch n olog y“. D a be i h a n de lt e s sich u m e in e 64 B it E rweiterung die ursprünglich von AMD entwickelt wurde. Dabei sind 16 Integer - General Purpose Register sowie 16 Register für SSE Befehlserweiterungen 64 bzw. 128 Bit breit. Diese werden jedoch nur von Anwendungen genutzt, die in 64 Bit betrieben werden. Bei 32 Bit Anwendungen werden nur wie bisher 8 Register verwendet. Zudem werden nur 32 Bit angesprochen und die 32 High-Bits werden auf 0 gesetzt. Als weitere neue Funktionalität ist zu nennen, dass der Prozessor nun mit der Vanderpool - Technologie ausgestattet ist. Dabei handelt es sich um eine Befehlssatzerweiterung zur Virtualisierungsunterstützung. Der mobile Prozessor-Kern Merom wird unter dem Handelsnamen Core 2 Duo vertrieben. 4. Testumgebung Uns stehen aus der Studentenschaft verschiedene Notebooks zu Testzwecken zur Verfügung. Für die Benchmarks verwenden wir frei erhältliche Software-Pakete, sowie selbst programmierte Anwendungen. 4.1. Hardware Für unsere Untersuchung stehen uns zwei Single-Core sowie zwei Dual-CoreSysteme zur Verfügung. Die Single-C ore N o teb o o ks ve rfü g e n üb e r e in e n „D o th a n“K e rn , „Y o n a h“ ste ckt in b eid e n D u al-Core-Geräten. Es steht uns kein Dual-Core-S yste m m it d e m n e u e n „M e ro m “-Kern zur Verfügung. Ein Single-Core sowie ein Dual-Core Notebook arbeiten mit einer Taktrate von 1,6 GHz. Zudem führen wir unsere Tests auf einem 2,1 GHz Single-Core „D o th a n “ S yste m m it 2 ,1 G H z P ro ze sso r-Taktrate, sowie einem 2,0 GHz Dual-Core „Y o n a h “ S yste m a u s. Seite 10 von 39 Frank Kuchta, Markus Rüger single vs. dual core RST-L WS06/07 Frank Kuchta vs. Markus Hanses Intel Pentium M 725 Number of cores Code Name Technology Core Speed L1 Data cache 1 Dothan 90 nm 1616.9 MHz 32 KBytes, 8-way set associative, 64-byte line size L2 cache 2048 KBytes, 8-way set associative, 64-byte line size Instruction sets MMX, SSE, SSE2 Memory DDR - 1280 MBytes 168.4 MHz Windows Version Microsoft Windows XP Home Edition Service Pack 2 Intel Core Duo T2300 2 Yonah 65 nm 1651.1 MHz 2 x 32 KBytes, 8-way set associative, 64-byte line size 2048 KBytes, 8-way set associative, 64-byte line size MMX, SSE, SSE2, SSE3 DDR2 - 2048 MBytes 264.2 MHz Microsoft Windows XP Home Edition Service Pack 2 Der Intel Pentium M verfügt nur über DDR Memory, der deutlich langsamer getaktet ist. Holger Wolf vs. Markus Rüger Intel Pentium M 770 Number of cores Code Name Technology Core Speed L1 Data cache 1 Dothan 90 nm 2131.5 MHz 32 KBytes, 8-way set associative, 64-byte line size L2 cache 2048 KBytes, 8-way set associative, 64-byte line size Instruction sets MMX, SSE, SSE2 Memory DDR2 - 1024 MBytes 266.4 MHz Windows Version Microsoft Windows XP Professional Service Pack 2 Intel Core Duo T2500 2 Yonah 65 nm 1999.4 MHz 2 x 32 KBytes, 8-way set associative, 64-byte line size 2048 KBytes, 8-way set associative, 64-byte line size MMX, SSE, SSE2, SSE3 DDR2 – 2048 MBytes 333.2 MHz Microsoft Windows XP Professional Service Pack 2 Der Arbeitsspeicher bzw. Der Frontside-Bus des Dual-Core Systems wird mit einer höheren Taktrate betrieben, als der Pentium M. Dieser jedoch weißt einen höheren Prozessortakt als der Core Duo aus. Die Chipsätze sind bei den verwendeten Systemen verschiedene. Ebenso unterscheiden sich die eingesetzten Festplatten. Deshalb führen wir die Testprogramme von einer USB-Festplatte aus, um überall annähernd gleiche Festplattenbedingungen herzustellen. Aufgrund der unterschiedlichen Hardware erwarten wir Auswirkungen auf unsere Messergebnisse. Seite 11 von 39 Frank Kuchta, Markus Rüger 4.2. single vs. dual core RST-L WS06/07 CPU Z Das Tool CPU Z ist ein Freeware-Programm von Franck Delattre. Es gibt detaillierte Information über die Hardware des Computers aus. Z.B. die Daten des Prozessors, der Caches, des Speichers, des Chipsatzes oder des Betriebsystems. Wir verwenden CPU Z um die Daten unserer Testgeräte auszulesen. Dies ermöglicht es uns, die Ergebnisse unserer Tests besser deuten zu können. Die ausführlichen Reports befinden sich im Anhang. 5. Benchmarks Ein genereller Vergleich zwischen Single- und Dual-Core Prozessoren ist schwierig und wenig aussagekräftig. Denn häufig haben sich durch die Weiterentwicklung auch weitere Bausteine im Gesamtsystem geändert. Zudem wird im Umfeld der ursprünglichen x86-Architektur inzwischen in verschiedene Richtungen bezogen auf die Anwendungsgebiete (Mobile, Workstation, Server, Home - Entertainment, Games) die Entwicklung voran getrieben. Wir vergleichen daher Prozessoren miteinander, die für den mobilen Einsatz entwickelt wurden. Die Anforderungen sind nach wie vor dieselben; energieeffizient aber leistungsfähig für das mobile arbeiten. 5.1. Vorbetrachtung 5.1.1. Software Als Betriebsystem für unseren Test verwenden wir Windows XP Service Pack 2, Home und Professionell Edition. Diese Versionen sind auf den uns vorliegenden Systemen bereits installiert. Zudem verfügen wir nicht über ausreichend Erfahrung im Linux/Unix-Umfeld um in der kurzen Zeit ähnliche Tests auf einem derartigen System durchführen zu können. Im Bereich der Notebooks verfügt Windows XP als Betriebsystem über den größten Marktanteil. Bezogen auf unsere Zielsetzung, die Fragestellung der Anwender zu beantworten, erscheint uns diese Wahl daher als richtig. Windows XP unterstützt mehrere Prozessoren. Es ist jedoch nicht bekannt, wie diese behandelt werden. In der Regel verteilt das Betriebsystem eigenständig verschiedene Threads auf die einzelnen Prozessoren. Nach welchen Regeln dies erfolgt ist nicht offen gelegt. Der Benutzer hat allerdings die Möglichkeit sich anzeigen zu lassen, welcher Prozess aktuell auf welchem Core läuft. Zudem ist es möglich nachträglich für einen Seite 12 von 39 Frank Kuchta, Markus Rüger single vs. dual core RST-L WS06/07 laufenden Prozess über den Task-M a n a g e r au szu w ä h le n , w e lche C P U ’s d ie se r verwenden darf. Die klassischen Office-Programme Word, Excel und auch OpenOffice nutzen Multithreading. In der Regel ist es aber nur schwer möglich ein modernes PC-System mit diesen Anwendungen an die Grenzen zu führen. 5.1.2. Anwendertests Computerzeitschriften führen in regelmäßigen Abständen Anwendertests durch, um die aktuell verfügbare Hardware zu vergleichen. Dabei werden häufig Werkzeuge eingesetzt, z.B. PCMark 05, SiSoft Sandra 2006 uvm. Diese Programme führen Testroutinen aus, und vergeben am Ende Punkte, mit deren Hilfe dann ein Ranking erfolgt. Was genau getestet wird, bzw. wie diese Testroutinen aussehen, bleibt verborgen. Wir haben uns daher entschlossen, Anwendertests durchzuführen, die auf einen praktischen Nutzen schließen lassen. Die Computerzeitschrift ct hat ähnliche Testfälle verwendet, um den Beschleunigungsfaktor eines Dual-Core Systems gegenüber einem Single-Core System zu ermitteln. Dabei kam heraus, dass Dual-Core Systeme ungefähr um den Faktor 1,8x schneller sind, als vergleichbare Single-Core Systeme. Vorausgesetzt die Anwendung unterstützt 2 Threads optimal. Wir testen das Verhalten bei der Kompression von Daten, umwandeln eines Videos sowie eines Musikstückes und das Rendern einer aufwendigen Grafik. 5.2. Kompression Wir vergleichen das Komprimieren einer großen Video-Datei. Dazu verwenden wir das Programm WinRAR der ROG GmbH, welches uns in der Shareware-Version zur Verfügung steht. Dies ist unter anderem damit zu begründen, dass andere Kompressionsprogramme wie z.B. Winzip 9.0 keine Threads unterstützen. In den Release Notes von WinRAR finden wir drei interessante Aspekte: WinRAR - Was ist neu in dieser Version? Version 3.61 1. Es wurde ein Fehler im Textkompressionsalgorithmus für Mehrprozessorsysteme korrigiert, der unter gewissen Umständen zu fehlerhaften Archivdaten führen konnte. Dieser Fehler trat nur in WinRAR 3.60 bei angeschaltetem Mehrprozessormodus auf. Andere RAR-Versionen waren nicht betroffen. [...] 1. Rechner mit mehreren Prozessoren , Dual-Core-Prozessor und Hyperthreading werden durch einen optimierten Komprimierungsalgorithmus besser unterstützt und komprimieren schneller. Die Multithreading-Fähigkeit ist in den Standardeinstellungen aktiviert und kann dort auch abgestellt Seite 13 von 39 Frank Kuchta, Markus Rüger single vs. dual core RST-L WS06/07 werden. Der Schalter -mt<Threads> ermöglicht Ihnen in der Befehlszeilenversion, die gewünschte Anzahl der Threads festzulegen. […] 10. Beim Geschwindigkeits- und Hardwaretest kann die Option "Multithreading" aktiviert werden. So ist ein Vergleich zwischen dem herkömmlichen und dem für Mehrprozessorbetrieb optimierten Komprimierungsalgorithmus möglich. […] Als Testdatei wird eine ein ca. 42 MB große Video Datei genommen. Wir haben eine Multimediadatei gewählt, um den Aufwand der Kompression möglichst hoch, hingegen die Belastung der Festplatte niedrig zuhalten. Gemessen wird die Dauer der Kompression in Sekunden. WinRar bietet mit dem Konsolenkommando „m t< T h re a d s> “ die die M ö glich keit d ie A n za hl d e r T h re a d s, die verw e n d e t w e rd e n sollen, festzulegen. Abbildung 5 Kompression Benchmark-Ergebnisse Die Single Core Systeme zeigten sich unbeeindruckt davon, ob WinRar mit 1, 2 oder beliebig vielen Threads betrieben wurde. Wohingegen die beiden Dual-Core Systeme bei dem Vergleich zwischen einem Thread und beliegen vielen Threads einen Beschleunigungsfaktor von ca. 1,4 aufzeigten. Beim Komprimieren müssen die Aufgaben ständig neu verteilt werden und nach Abschluss der Berechnung wieder zusammengeführt werden. Daher war kein höherer Beschleunigungsfaktor zu erwarten. Randbemerkung: Seite 14 von 39 Frank Kuchta, Markus Rüger single vs. dual core RST-L WS06/07 Eines der beliebtesten Packer-Tools, das Programm WinZip, bietet selbst in der neusten Version leider noch keine Multi-Thread/Core Unterstützung, weshalb unsere Wahl auf das Programm WinRAR viel. Beschleunigungsfaktoren: 5.3. Audio Für den Audio Kompressionstest wird das Tool LAME-MP3, in der derzeit neusten Version 3.97, verwendet. Wegen der hohen Qualität wird der LAME Quellcode häufig in Freeware-Programmen verwendet. Abbildung 6: Screenshot von LAME Es wird eine ca. 40 MB große WAV-Datei in MP3-128 kbit/s umgewandelt. Gemessen wird die Zeit die der Prozess von LAME auf der CPU benötigt hat. Diese Zeit wird von dem Programm, wie in Abbildung 6 zusehen ist, bereit gestellt. Seite 15 von 39 Frank Kuchta, Markus Rüger single vs. dual core RST-L WS06/07 Abbildung 7: Audio Benchmark-Ergebnisse LAME MP3 konvertiert lediglich in einen Thread. Daher ergibt sich kein bemerkenswerter Geschwindigkeitsvorteile aufgrund des Vorhandenseins von 2 Kernen. Abbildung 7 zeigt die Ergebnisse im Detail. Wir verzichten hier darauf, die Beschleunigungsfaktoren aufzuführen. 5.4. Video VirtualDub ist ein kostenloser Video-Editor mit vielen Funktionen. Er ist deshalb sehr weit verbreitet. Wir wollen ein Video komprimieren, und die Zeit messen. Unser Testvideo ist 5,3 MB groß. Es ist bereits vorkomprimiert, unkomprimiert würde es ca. 900 MB groß sein. Xvid ist ein Open-Source MPEG-4 Video Codec, der auf den Sourcen des ursprünglichen DivX Codec basiert. Er ist sehr populär, und viele Videos verwenden diesen Codec. Wir entschließen uns daher zunächst unser Testvideo mit Xvid zu komprimieren. Seite 16 von 39 Frank Kuchta, Markus Rüger single vs. dual core RST-L WS06/07 Abbildung 8: Video Benchmark-Ergebnisse Die Ergebnisse überraschen uns. Alle Testsysteme benötigen zum komprimieren im Schnitt zwischen 38 und 30 Sekunden. Gerade hier hätten wir einen deutlichen Vorteil der neuen Technologie erwartet. Zumal Video-Bearbeitung häufig als praktischer Anwendungsfall für leistungsstarke Systeme genannt wird. Der Blick in die Sourcen von Xvid verrät uns, dass dieser Codec in nur einem Thread arbeitet. Somit ergeben sich hier nur sehr minimale Vorteile für ein Dual-CoreSystem, nämlich die, dass andere Anwendungen sowie das Betriebsystem auf dem zweiten Core arbeiten können und somit die Ausführung der Komprimierung nicht so stark beeinflussen wie auf einem Single-Core-System. Aufgrund dieses Ergebnisses führen wir einen zweiten Test durch, nun mit dem Windows Media Video Codec 9. Diesen rufen wir ebenfalls mit VirtualDub auf. Beschleunigungsfaktoren WMV Codec: Hier ergeben sich die erwarteten Ergebnisse. Der WMV Codec scheint die Komprimierung auf mehrere Threads aufzuteilen, sodass beide Kerne ausgenutzt werden. Dadurch ergeben sich Beschleunigungsfaktoren von 1,86 bzw. 1,76, was sich mit unseren Erwartungen denkt. Seite 17 von 39 Frank Kuchta, Markus Rüger 5.5. single vs. dual core RST-L WS06/07 Grafik Rendering Die Firma Maxon, die die Grafiksoftware CINEMA 4D herstellt, stellt einen speziellen Benchmark kostenfrei zur Verfügung. CINEBENCH 9.5 basiert dabei auf der 3D Bearbeitungssoftware. Die Engine von CINEMA 4D zeichnet sich dadurch aus, dass sie nach eigenen Angaben mehrere Prozessoren bzw. Kerne optimal ausnutzt. Im Bereich GrafikRendering wird dazu das gesamte Bild in zwei Teile aufgeteilt und diese werden jeweils von einem Thread gerendert. Im Beispiel von Cinebench ist dabei der 1. Thread auf einem Dual-Core-System deutlich früher fertig, als der zweite. Deshalb wird das verbleibende Teilstück des zweiten Threads wieder in zwei Teile zerlegt und an seperate Thread vergeben. Das der erste Thread deutlich schneller mit seiner Aufgabe fertig ist, hängt von verschiedenen Faktoren ab. Zum einen liegt auf dem einen Prozessorkern das gesamte Betriebsystem, zum anderen verfügt die verwendete Grafik über aufwendige Texturen im mittleren Bereich. Zusätzlich gehen wir davon aus, dass eine kurze Verzögerung in den Start eingebaut wurde, um genau diesen Effekt darzustellen. Abbildung 9: Cinebench Benchmark-Ergebnisse Cinebench arbeit genauso wie fast alle anderen erhältlichen Benchmark-Tools mit einem eigenen Messw e rt. D ie se r ne n n t sich „C B -C B L “. In d e r D o ku m e n ta tio n fin d e n wir dazu keine genauen Informationen. Es wird bloß angegeben, dass dieser Wert multipliziert mit 10 ungefähr den Prozessortakt ergeben sollte. Da diese Angabe keinesfalls stimmt, und uns dieser Wert nicht aussagekräftig genug erscheint, entschließen wir uns dazu, hier die Zeit zu messen, bis die Grafik vollständig gerendert ist. Die Anwendung erkennt, ob es sich um ein Dual-Core System handelt. Entsprechend ist es auch nut auf diesen möglich, die Grafik in zwei Threads zu rendern. Die Testergebnisse sind nicht überraschend aber erstaunlich. So übertreffen die Beschleunigungsfaktoren dieser Tests den Daumenwert von 1,8 doch teilweise deutlich. Seite 18 von 39 Frank Kuchta, Markus Rüger single vs. dual core RST-L WS06/07 Gegenüber den Single-Core Systemen weisen die Dual-Core Maschinen eine deutliche Beschleunigung auf. Zum einen natürlich durch die Aufteilung der Aufgabe auf zwei Kerne, zum anderen aber auch durch eine bessere Anbindung des Arbeitsspeichers. Die Effizienz der Aufteilung der Aufgabe alleine sieht man sehr deutlich im Vergleich 1 Thread gegen 2 Threads auf den Dual-Core-Systemen mit einem Beschleunigungsfaktor von 1,82 bzw. 1,83. Das Rendern einer Grafik eignet sich also sehr gut, um es auf mehrere Berechnungseinheiten aufzuteilen. 5.6. RSA Benchmark Die folgenden eigenen Programme sind alle in C#2005 implementiert. Der Compiler erstellt ähnlich wie Java ein Bytecode, der in einer Runtime ausgeführt wird. C# bietet zwei Einstellungen für Compiler-Optimierungen: keine, und volle Optimierung mit SSE und SSE2. Für Zeitmessungen bietet C# eine Auflösung von 10ns, was deutlich genauer ist als bei Java. Beim RSA Benchmark besteht die Aufgabe darin, einen gegeben Text zu verschlüsseln bzw. zu entschlüsseln. Dabei messen wir die benötigte Zeit. Der Programm wird mit festgelegten Parametern ausgeführt: Die Primzahlen p und q sind dabei jeweils 128 Bit lang. p = 272841391209158082973553771691834107803 q = 204529522774722087416736679430142573943 Mit p * q wird n bestimmt. n= 55804119537200356864262710503223737361364815547930284919191499 161941360777229 Der öffentlichen Schlüssel e ist ebenfalls 128 Bit lang. Der Wert ist random, jedoch muss ggT(e, φ (n)) = 1 erfüllt werden. e = 299959329779933941214908800093326386487 Seite 19 von 39 Frank Kuchta, Markus Rüger single vs. dual core RST-L WS06/07 Der geheime Schlüssel d wird errechnet, so dass e*d = 1 mod φ (n) d= 52697171591031710974197215140234759556016669833013983138526341 286792399231215 Als Text zum Verschlüsseln und anschließenden Entschlüsseln wird das Dokument Heath.pdf als Text-Datei (833kb) verwendet. Getestet wird in einer 1 und 2 Thread-Variante. In der 2 Thread-Variante wird der zu verschlüsselnde String in 2 Hälften geteilt und beide Threads werden mit dem Verschlüsseln „be a u ftra g t“. Da uns diese Aufgabe als geeignet für die Aufteilung auf zwei Threads erscheint, erwarten wir einen Beschleunigungsfaktor im Bereich von 1,8. Implementiert wurde der RSA-Benchmark in C# 2005, ohne Compiler Optimierung. Abbildung 10: RSA Benchmark-Ergebnisse Bereits bei einen Thread Encoding zeigt sich ein großer Abstand zwischen den Single Core und Dual Core Prozessoren. Bei den 1,6 GHz Prozessoren noch größer als bei den 2,1GHz und 2,0 GHz Prozessoren. Dieses erklärt sich durch die hohe Anzahl von Speicher zugriffen, und dass die Single Core Systeme einen deutlich langsameren RAM besitzen. Ein direkter Vergleich zwischen den Single-/ und Dual Core Systemen ist daher bei diesen Tests nicht sinnvoll, wird aber zur Vollständigkeit aufgeführt. Seite 20 von 39 Frank Kuchta, Markus Rüger single vs. dual core RST-L WS06/07 Die Beschleunigungsfaktoren bei den Dual-Core-Systemen, zwischen den 1 und 2 Thread Varianten, liegen im Bereich der zuvor prognostizierten Erwartungen (1,6 – 1,8). 5.7. Zwischenbetrachtung Wir haben nun vier Testfälle durchgeführt. Beide Notebooks mit Dual-Core-Prozessor waren dabei immer schneller als die Rechner mit nur einem Kern. Dabei ist uns aufgefallen, dass es im wesendlichen darauf ankommt, ob eine Anwendung die zu erledigende Aufgabe aufteilt und an zwei Threads delegiert, oder eben nicht. Kann man also sagen, dass eine Anwendung sobald sie Threads verwendet auf einem Dual-Core System deutlich schneller ist als auf einem mit nur einem Kern? Wir wollen dieser Frage auf den Grund gehen, und nachfolgend versuchen mit eigenen Programmen uns den möglichen Schwachstellen der Dual-CoreProzessoren zu nähern. 5.8. SyncAccess Mit dem Programm SynAccess versuchen wir, den Vorteil des Dual-Cores, das zwei Threads zur selben Zeit laufen können, als Nachteil auszulegen. Dabei nutzen wir einen klassischen Anwendungsfall: der gleichzeitige Zugriff von zwei Anwendungen auf eine gemeinsame Ressource. Bekannt als das Producer/ Consumer Problem, bekannt aus der EBS-Vorlesung. Zwei Threads greifen jeweils in einer Schleife ständig auf die globale Variable SharedMem zu. Mit dem Befehl lock (block)wird der Zugriff auf die Variable Seite 21 von 39 Frank Kuchta, Markus Rüger single vs. dual core RST-L WS06/07 SharedMem exklusiv auf für den bearbeitenden Thread reserviert und erst nach Verlassen des Bereiches wieder für andere Threads freigegeben. Die mathematischen Operationen sind zufällig gewählt und sollen eine beliebe „ze itve rbra u ch en d e “ A u fg a b e d a rstellen . D ie V a ria ble S h a re d M e m w ird n a ch Abschluss der Messung ebenfalls ausgegeben, um eine automatische CompilerOptimierung der Schleife zu verhindern. for (long i = 0; i < n; i++) { lock (block) { SharedMem *= 5; SharedMem = Math.Pow(SharedMem, 63); SharedMem /= 3; SharedMem = SharedMem % 99999; } } Dieses Programm wurde implementiert in C# 2005, ohne Compiler-Optimierung. Gemessen wurde die Dauer bis beide Threads ihre Aufgabe erledigt hatten. for (long i = 0; i < n; i++) { lock (block) { SharedMem *= 5; SharedMem = Math.Pow(SharedMem, 63); SharedMem /= 3; SharedMem = SharedMem % 99999; } } Abbildung 11: SyncAccess Benchmark-Ergebnisse Beschleunigungsfaktoren: Seite 22 von 39 Frank Kuchta, Markus Rüger single vs. dual core RST-L WS06/07 Obwohl beide Kerne der Dual-Core-Systeme voll belegt wurden, benötigten die Systeme bei diesem Benchmark länger, als die Single-Core-Notebooks zur Abarbeitung der Aufgaben. Dies liegt in erster Linie daran, dass der blockierte Prozess im „b u sy w a itin g “ Modus (zyklische Abfrage eine Variable) verweilt. So muss dieser ständig abfragen, ob die Ressource frei ist. Ebenso muss bei Freigabe der Ressource ein notify an den anderen Thread erfolgen. Sobald dies geschehen ist greift sich der zweite Thread die Ressource, und der erste Thread der nun wieder die Schleife durchläuft, wird blockiert. Auf dem Single-Core-System läuft während eines Zeitscheiben-Zyklus nur ein Thread. Dieser blockiert die gemeinsame Ressource und durchläuft die Schleife mehrere Male. Entweder erfolgt nun der Prozesswechsel nach Freigabe der Ressource oder gerade während sie blockiert ist. Im zweiten Fall würde der zweite Thread einen Zyklus warten müssen, denn die Ressource ist dann ja belegt. Es lässt sich nur spekulieren, wie das System dies handhabt. Die Ergebnisse zeigen jedoch deutlich, dass dies in jedem Fall immer noch wesendlich besser funktioniert, als auf dem Dual-Core-System wo beide Threads zeitgleich aktiv sind. Seite 23 von 39 Frank Kuchta, Markus Rüger 5.9. single vs. dual core RST-L WS06/07 DualSlow Wir wollen nun einen Fall konstruieren, bei dem wir die Schwächen des Shared-L2C a ch e s a u fzeige n m ö ch te n . In tel’s M a rke tin g -Maschine verkauft den gemeinsam genutzten Cache als Performance Vorteil. Grundsätzlich verfügen alle unsere Testsysteme über einen L2-Cache mit einer Kapazität von 2048 KBytes. Dieser ist 8-fach assoziativ, eine Cachline ist 64Byte lang. F rei n a ch d e r H yp o th e se , „A u fga b e n a u f T hrea d s a u fzu te ile n “ schreib e n w ir ein Programm mit zwei Threads. Dabei greift jeder Thread auf seine eigenes DatenArray zu. Es gibt also keine Abhängigkeit bzw. Blockade einer Ressource. Dieses Daten-Array ist 64Byte breit und variable lang. int[,] Datenfeld1 = new int[DatenfeldGroesse, 16]; Wir wollen vermeiden, dass es zu Cache-Hits aufgrund von räumlicher Lokalität kommt. Daher greifen wir alle 65 Byte auf ein Array-Feld zu, und schreiben diesen Integer-Wert weitere 65 Byte weiter. Wenn das gesamte Datenfeld durchlaufen wurde, wird der Vorgang n mal wiederholt, um in den nächsten Durchläufen Cache Hits aufgrund von zeitlicher Lokalität zu erreichen. for (int j = 0; j < n; j++) { for (int i = 0; i < DatenfeldGroesse; i = i + 2) { Datenfeld1[i, 0] = Datenfeld1[i + 1, 0]; } } Der gesamte Test wird mit unterschiedlichen Längen des Datenfeldes wiederholt um die benötigte Zeit in Abhängigkeit der Datengröße pro Thread aufzeigen zu können. Seite 24 von 39 Frank Kuchta, Markus Rüger single vs. dual core RST-L WS06/07 Abbildung 12: DualSlow-Benchmark, Datengröße bis 2000kByte In Abbildung 12 sieht man, dass beide Single-Core-Systeme (rot & blau) bei ansteigender Datengröße eine lineare Steigung aufweisen. Bis zu einer Datengröße von ca. 1000KByte pro Thread, ist dies auch bei den DualCore-Systemen (grün & lila) zu beobachten. Sie sind jedoch schneller als die Systeme mit nur einem Kern. Wenn wir eine Datengröße über 1000KByte pro Thread wählen, ist ein extremer Anstieg bei der benötigten Zeit zu beobachten. Bei einer Datengröße von ca. 1700KByte pro Thread sind unsere Single-Core-Systeme ca. viermal schneller als unsere Systeme mit zwei Kernen. Um dieses Verhalten genauer untersuchen zu können, messen wir nach jedem Schleifendurchlauf die Zeit. Wir erhalten also n Messwerte. Durch das Messen der Zeit verändern wir unseren Testfälle. Diese Veränderung hatte jedoch keine gravierende Auswirkung auf unser Testergebnis. Wir wählen n = 20.000 Schleifendurchläufe für unsere Tests. In Abbildung 13 werden die absolvierten Schleifendurchläufe in Abhängigkeit zu der benötigten Zeit dargestellt. Dabei werden der 1. und der 2. Thread des 2,0 GHz DualCore Systems rot bzw. grün dargestellt. Im Vergleich dazu der 1. und der 2. Thread des 2,1 GHz Single-Core Systems in den Farben blau und lila. Seite 25 von 39 Frank Kuchta, Markus Rüger single vs. dual core RST-L WS06/07 Abbildung 13: DualSlow: absolvierte Schleifendurchläufe / Zeit (1) Abbildung 14 zeigt den Zeitabschnitt bis 1 Sekunde nach Start. Dort ist sehr deutlich zu sehen, dass das Single-Core-System die beiden Threads in Zeitscheiben á 50 ms abarbeitet. Die Zeitauflösung beträgt 1ms. Seite 26 von 39 Frank Kuchta, Markus Rüger single vs. dual core RST-L WS06/07 Abbildung 14: DualSlow: absolvierte Schleifendurchläufe / Zeit (2) Single Core: Während eines Zeitscheiben-Zyklus steht den laufenden Prozess die gesamte Kapazität des L2-Caches alleine zur Verfügung. Bis zum nächsten Prozesswechsel schafft der Prozess ca. 300 Schleifendurchläufe. Beim ersten Schleifedurchlauf kommt es zu Cache-Misses. In diesem Zuge wird das gesamte Datenfeld nach und nach in den Cache geladen. Bei allen weiteren Schleifendurchläufen erhalten wir nun Cache-Hits aufgrund von zeitlicher Lokalität. Dual Core: Beide Threads laufen hier parallel. Somit verwenden gleichzeitig beide Prozesse den Cache für ihre jeweiligen Daten. Da jeder Prozess ca. 1,7 MByte in den Cache lädt, überschreiben sich die beiden Prozesse die Daten ständig gegenseitig. Dadurch müssen in jedem neuen Schleifendurchlauf die Daten erneut aus dem RAM gelesen werden. Ebenso muss für den Fall, dass modifizierte Daten aus dem Cache verdrängt werden, ein Write-Back erfolgen. Dadurch ergibt sich eine extreme Verzögerungen. Hier spielt das Single-Core-System den Vorteil aus, dass dem Prozess die gesamten 2 MByte Cache exklusiv während des Zeitscheiben-Zyklus zur Verfügung steht. Übersteigt nun die Größe des Datenfeldes die 2 MByte-Marke, werden ebenfalls Teile des Datenfeldes verdrängt, die später wieder benötigt werden. Dies ist in Abbildung 15 dargestellt. In diesem Fall spielen die Dual-Core-Systeme nun wieder Ihren Vorteil aus; sie verfügen über eine schnellere Anbindung des Arbeitsspeichers. Seite 27 von 39 Frank Kuchta, Markus Rüger single vs. dual core Abbildung 15: DualSlow-Benchmark, Datengröße bis 3000kByte Seite 28 von 39 RST-L WS06/07 Frank Kuchta, Markus Rüger single vs. dual core RST-L WS06/07 6. Fazit Wir haben in unseren Tests deutlich gesehen, dass die Effizienz eines Dual-Core Systems deutlich davon abhängt, wie die verwendete Anwendung programmiert wurde. Die Software-Entwickler sind also aufgefordert die Anwendungen, soweit möglich, zu parallelisieren. Dass hier besonders bedacht vorgegangen werden muss, konnten unsere letzten zwei Testfälle deutlich zeigen. Viele Anwendungen sind leider derzeit nicht in mehreren Threads programmiert, sodass sich hier kaum ein Geschwindigkeitsvorteil ergibt. Dazu zählen z.B. Virenscanner, Grafik-P ro gram m e w ie z.B . d e r „W oh n zim m e r D e sig ne r“ o d e r „P ain t S h o p“ so w ie Google Earth und die meisten auf dem Markt verfügbaren Spiele. Grundsätzlich lässt sich auch sagen, dass er Aufbau von Internetseiten oder das versenden von E-Mail Nachrichten nicht von der Prozessorgeschwindigkeit oder dem Vorhandensein eines Dual-Core Prozessors abhängen sondern viel mehr von der Internetverbindung. Etwaige Marketing-Aussagen von Prozessor-Herstellern sollte man also sehr kritisch begutachten. Nichts desto trotz profitiert der Benutzer von einem Dual-Core-System. Werden z.B. viele Dinge zur selben Zeit gemacht, wie z.B. das Abspielen eines Videos und gleichzeitig das Durchführen eines Virenchecks im Hintergrund, so werden diese Anwendungen auf die Kerne verteilt. Die Video-Applikation ist in diesem Fall in der Lage auf dem 2. Kern zu arbeiten während auf dem 1. Kern das Betriebsystem sowie der Virenscanner aktiv sind. Abbildung 16: Preisübersicht aktueller Notebooks [Saturn] Wie in Abbildung 16 zu sehen ist betragen die Mehrkosten für ein Notebook mit DualCore-Prozessor in diesem Beispiel von Saturn nur 27%. Dieser Vergleich hinkt etwas, da man eigentlich die gesamte Ausstattung der Geräte betrachten müsste. Jedoch zeigt es, dass die Preise derzeit deutlich gefallen sind, was auch darauf zurück zu Seite 29 von 39 Frank Kuchta, Markus Rüger single vs. dual core RST-L WS06/07 führen ist, dass bereits nach nur einem halben Jahr der Core 2 Duo den Dual-Core der ersten Generation abgelöst hat. Einsteiger haben dadurch die Möglichkeit, preislich reduzierte Pentium M bzw. C e n trin o G erä te , so w ie D u o C ore ’s d er e rsten Generation zu erhalten. Für Leute die öfter mit mehreren Anwendungen zur selben Zeit arbeiten ist es in jedem Fall empfehlenswert ein Dual-Core-System auszuwählen. Abbildung 17: Preisübersicht Intel mobile Prozessoren [alternate] Wir dürfen gespannt sein, was die Zukunft auf dem Notebookmarkt bringen wird. Beim Pentium 4 hat man gesehen, dass die Erhöhung der Taktrate nur bedingt geeignet ist. Die Bitbreite der Ausführungseinheiten wurde inzwischen auf 128 Bit erhöht. Jedoch wird dies nur von sehr wenigen Befehlen genutzt. Auch eine Erweiterung des Befehlssatzes um häufig genutzte Funktionen, wie z.B. bei SSE bringt nur bedingt eine Performance-Verbesserung, da viele Anwendungen diese nicht unterstützen. Die Einführung der Dual-Core Systeme hat einen deutlichen Leistungsgewinn unter bestimmten Bedingungen verursacht. Jedoch ist dies in Zukunft nur schwer möglich. Zum einen ist es nur begrenzt möglich Aufgaben in beliebig viele Teilaufgaben zu verlegen, zum anderen muss man sich die Frage stellen wie viele Kerne in ein Notebook passen. Der Energiebedarf ist nach wie vor der wichtigste Aspekt bei einem mobilen System. Immer größere Anstrengungen sind nötig, um diesen zu reduzieren bzw. auf einem erträglichen Niveau zu halten. Folglich ist die einzige Konsequenz auf lange Sicht sich von der bisherigen Architektur zu verabschieden und eine komplett neue Plattform zu entwickeln. Seite 30 von 39 Frank Kuchta, Markus Rüger single vs. dual core RST-L WS06/07 7. Quellen [Zitat Intel 1] Grafik, online im www http://www.intel.com/cd/corporate/europe/emea/deu/321193.htm , Abruf am 31.11.06 [Zitat Intel 2] Grafik, online im www http://www.intel.com/personal/computing/emea/deu/centrinositelet/index.htm?pin=Int el , Abruf am 31.11.06 [Banias] Grafik, online im www http://www.thg.ru/mobile/20040511/images/baniasdie.jpg , Abruf am 31.11.06 [Dothan] Grafik, online im www http://www.3dnews.ru/documents/12029/dothan_core.jpg , Abruf am 31.11.06 [Yonah] Grafik, online im www http://www.computerbase.de/artikel/hardware/prozessoren/2006/bericht_intels_core_ solo_core_duo/2/ , Abruf am 31.11.06 [Merom] Grafik, online im www http://www.khardware.de/artikel.php?s=c&artikel_id=5495&seite=5 , Abruf am 31.11.06 [Saturn] Screenshot aus dem Onlineshop von Saturn, online im www http://saturn.de , Abruf am 28.11.06 [Alternate] Screenshot aus dem Onlineshop von Alternate, online im www http://www.alternate.de , Abruf am 28.11.06 David A. Patterson, John L. Hennessy, Rechnerorganisation und – entwurf, deutsche Ausgabe, 3. Auflage 2005, Spektrum Akademischer Verlag Thorsten Leemh u is, D op p elturbin e n , In tels erste r P ro ze ssor m it zw e i K e rn e n , c’t 8/2005, Heise Zeitschriften Verlag, Hannover Andreas Stiller, Doppeltes Ottchen, Was Dual-Core-Prozessoren auf dem Desktop b rin g e n , c’t 1 5 /2 00 5 , H eise Z eitschrifte n V e rlag , H a n n o ver Andrea s S tille r, P ro ze sso rg eflü ste r, B u g s, B en ch m a rks u n d B u sin e ss, c’t 2 4 /20 0 5 , Heise Zeitschriften Verlag, Hannover c’t H o tline -A rtikel, R u ckler trotz Z w e ikern p ro ze sso r, c’t 2 4/2 0 0 5 , H eise Z e itsch riften Verlag, Hannover Andreas Stiller, Jörg Wirtgen, Prozessorgeflüster, Von alten und neuen Namen, c’t 1/2006, Heise Zeitschriften Verlag, Hannover Jö rg W irtg en , K e rn fu sio n im N o te b o o k, P e n tium M g e g e n C o re D u o , c’t 3 /2 0 06 , Heise Zeitschriften Verlag, Hannover Seite 31 von 39 Frank Kuchta, Markus Rüger single vs. dual core RST-L WS06/07 Christof Windeck, Mit doppelter Kraft, Die Dual-Core-T e ch nik ko m m t in F a hrt, c’t 4/2006, Heise Zeitschriften Verlag, Hannover Christof Windeck, Kern-Kalender, Der Prozessor-F a h rplan 2 0 0 6, c’t 4 /20 0 6 , H eise Zeitschriften Verlag, Hannover Nico Nowarra, Joachim Sauer, Andrea Trinkwalder, Zweispänner, Wie Anwendungen von Dual-Core-S yste m e n p ro fitie ren , c’t 4 /20 06 , H e ise Z eitsch rifte n V e rla g , H an n o ver Andreas Stiller, Prozessorgeflüster, Von Vierkern- un d a n de re n M e n ü s, c’t 5 /20 0 6 , Heise Zeitschriften Verlag, Hannover Erich Bonnert, Andreas Stiller, Vier ist besser als drei, Intel Developer Forum F rü h ja h r 2 00 6 , c’t 7 /2 0 0 6 , H eise Z eitsch rifte n V e rla g, H a n n o ve r Andreas Stiller, Prozessor-Mimikry, Vom vorgetäuschten Hyper-Threading und dem sch w ie rig e n D urch zä hle n vo n K e rne n , c’t 8/2 00 6 , H eise Z e itsch riften V e rlag, Hannover Jü rg e n R in k, D o p p elte s L o ttch en , C e n trin o D uo in N o te b o oks, c’t 9 /20 0 6 , H eise Zeitschriften Verlag, Hannover c’t H o tline A rtikel, A u sla stu ng ein e s H ype r-Threading-P ro ze sso rs, c’t 1 2 /2 00 6 , H eise Zeitschriften Verlag, Hannover Andreas Stiller, IDF: Ausbeute und Herstellungskosten von Core 2, Heise NewsTicker, 28.09.2006, online im www http://www.heise.de/newsticker/meldung/print/78801 , Abruf am 23.10.2006 Christian Vilsbeck, Details zum Pentium 4, tecchannel.de, online im www http://www.tecchannel.de/technologie/prozessoren/401567/ , Abruf am 26.11.2006 Christian Vilsbeck, MPF: Intel enthüllt den Banias, tecchannel.de, online im www http://www.tecchannel.de/client/mobile/402008/ , Abruf am 26.11.2006 Christian Vilsbeck, MPF: Intel Centrino im Detail, tecchannel.de, online im www http://www.tecchannel.de/client/mobile/402079/ , Abruf am 26.11.2006 Jon Hannibal Stokes, A Look at Centrino's Core: The Pentium M, ars technica, 25.2.2004, online im www http://arstechnica.com/articles/paedia/cpu/pentiumm.ars/1 , Abruf am 30.11.2006 C o m p u te rB a se , In tels „C o re S o lo“ u nd „C o re D u o “, E in N e u a nfa n g ? , online im www http://www.computerbase.de/artikel/hardware/prozessoren/2006/bericht_intels_core_ solo_core_duo/ , Abruf am 25.11.2006 Christian Vilsbeck, Wechsel an der Spitze: Intels neue Core Prozessoren, tecchannel.de, online im www http://www.tecchannel.de/technologie/prozessoren/437111/ , Abruf am 26.11.2006 Seite 32 von 39 Frank Kuchta, Markus Rüger single vs. dual core RST-L WS06/07 Marcus Pollice, Core 2 Duo E6700 & Extreme X6800 im Test, K-Hardware, online im www http://www.k-hardware.de/artikel.php?s=&artikel_id=5495 , Abruf am 25.11.2006 David Kanter, Intel's Next Generation Microarchitecture Unveiled, Real World Technologies, online im www http://www.realworldtech.com/page.cfm?ArticleID=RWT030906143144&p=1 , Abruf am 30.11.06 Peter Gräber, Christian Hirsch, Intel Core 2 Duo [X6800 - E6700 - E6600], Hard Tecs 4U, 14. Juli 2006, online im www http://www.hardtecs4u.com/reviews/2006/intel_conroe/ , Abruf am 26.11.2006 Nico Ernst, Intels Core-Architektur im Detail , Schlauer Speicherzugriff und effektiver Cache, golem.de, 15.03.2006, online im www http://www.golem.de/print.php?a=44043 , Abruf am 30.11.2006 Eric Johannes, Martin Weber, Intel Pentium und IA-64 Prozessor-Familien, Universität Trier, online im www http://www.syssoft.unitrier.de/systemsoftware/Download/Fruehere_Veranstaltungen/Seminare/Prozessorar chitekturen/Prozessorarchitekturen-2.html , Abruf am 30.11.2006 Wikipedia, Hyper-Threading, online im www http://de.wikipedia.org/wiki/HyperThreading , Abruf am 25.11.2006 Wikipedia, Pentium D, online im www http://de.wikipedia.org/wiki/Pentium_D , Abruf am 25.11.2006 Wikipedia, Mobile Pentium 4, online im www http://de.wikipedia.org/wiki/Mobile_Pentium_4 , Abruf am 25.11.2006 Wikipedia, Intel Core , online im www http://de.wikipedia.org/wiki/Intel_Core , Abruf am 25.11.2006 Wikipedia, Branch Predictor , online im www http://en.wikipedia.org/wiki/Branch_predictor, Abruf am 30.11.2006 Wikipedia, Intel-Core-Mikroarchitektur, online im www http://en.wikipedia.org/wiki/Intel-Core-Mikroarchitektur , Abruf am 30.11.2006 Wikipedia, LAME, online im www http://en.wikipedia.org/wiki/LAME , Abruf am 26.11.2006 CPU-Z ist ein Freeware-Tool, welches Informationen über das PC-System ausgibt. Verfügbar unter http://www.cpuid.com/cpuz.php . WinRAR ist ein Packprogramm für verschiedene Packformate. Es ist als Shareware erhältlich unter http://www.winrar.de/ . VirtualDub ist ein Tool zum Bearbeiten von Videos. Es unterliegt der GPL. Die deutsche Version ist verfügbar unter http://www.virtualdub-deutsch.dl.am/ . Seite 33 von 39 Frank Kuchta, Markus Rüger single vs. dual core RST-L WS06/07 Xvid ist ein MPEG-4 Video-Codec. Es handelt sich dabei um ein Open-Source Projekt. Der Codec ist verfügbar unter http://www.xvid.org . LAME ist ein mp3-Encoder, der als Open-Source Projekt entwickelt wird. Er unterliegt der LGPL und ist verfügbar unter http://lame.sourceforge.net/ . Cinebench ist ein Standalone-Programm, das auf Cinema 4D von der Maxon Computer GmbH aufbaut. Es ist frei verfügbar unter http://www.maxon.net/pages/download/cinebench_d.html . Seite 34 von 39 Frank Kuchta, Markus Rüger single vs. dual core RST-L WS06/07 8. Anhang Folgende Dateien befinden sich im Anhang: Vortrag.pdf CryptoRSA.cs BigInteger.cs SyncAccess.cs DualSlow.cs Dabei handelt es sich um die Präsentation, sowie die Quelltexte unser eigenen Programme. 8.1. Reports der verwendeten Systeme Die Reporte wurden mit dem Freeware-Programm CPU-Z erstellt. Anbei werden die Details zur verwendeten Hardware aus der Studentenschaft nach Single- und DualCore Systemen aufgelistet. Seite 35 von 39 8.2. Single Core Systeme CPU-Z 1.37 report file: Frank Kuchta Processor(s) Number of processors 1 Number of cores 1 per processor Number of threads 1 (max 1) per processor Name Intel Pentium M 725 Code Name Dothan Specification Intel(R) Pentium(R) M processor 1.60GHz Package Socket 479 mPGA Family/Model/Stepping 6.D.6 Extended Family/Model 6.D Brand ID 22 Core Stepping B1 Technology 90 nm Core Speed 1616.9 MHz Multiplier x Bus speed 16.0 x 101.1 MHz Rated Bus speed 404.2 MHz Stock frequency 1600 MHz Instruction sets MMX, SSE, SSE2 L1 Data cache 32 KBytes, 8-way set associative, 64-byte line size L1 Instruction cache 32 KBytes, 8-way set associative, 64-byte line size L2 cache 2048 KBytes, 8-way set associative, 64-byte line size Chipset & Memory Northbridge Intel i855GM/GME rev. A2 Southbridge Intel 82801DB (ICH4-M) rev. 03 Graphic Interface AGP AGP Revision 2.0 AGP Transfer Rate 4x AGP Side Band Addressing supported, enabled Memory Type DDR Memory Size 1280 MBytes Memory Frequency 168.4 MHz (3:5) CAS# Latency (tCL) 2.5 clocks RAS# to CAS# (tRDC) 3 clocks RAS# Precharge (tRP) 3 clocks Cycle Time (tRAS) 7 clocks System System Manufacturer Acer System Name TravelMate 4000 System S/N LXT5205418514053FEEM25 Mainboard Vendor Acer Mainboard Model TravelMate 4000 BIOS Vendor ACER BIOS Version 3A10 BIOS Date 10/12/2004 Memory SPD Software Windows Version Microsoft Windows XP Home Edition Service Pack 2 (Build 2600) DirectX Version 9.0c CPU-Z 1.37 report file: Holger Wolf Processor(s) Number of processors 1 Number of cores 1 per processor Number of threads 1 (max 1) per processor Name Intel Pentium M 770 Code Name Dothan Specification Intel(R) Pentium(R) M processor 2.13GHz Package Socket 479 mPGA Family/Model/Stepping 6.D.8 Extended Family/Model 6.D Brand ID 22 Core Stepping C0 Technology 90 nm Core Speed 2131.5 MHz Multiplier x Bus speed 16.0 x 133.2 MHz Rated Bus speed 532.9 MHz Stock frequency 2133 MHz Instruction sets MMX, SSE, SSE2 L1 Data cache 32 KBytes, 8-way set associative, 64-byte line size L1 Instruction cache 32 KBytes, 8-way set associative, 64-byte line size L2 cache 2048 KBytes, 8-way set associative, 64-byte line size Chipset & Memory Northbridge Intel i915PM/GM rev. 03 Southbridge Intel 82801FBM (ICH6-M) rev. 03 Graphic Interface PCI-Express PCI-E Link Width x16 PCI-E Max Link Width x16 Memory Type DDR2 Memory Size 1024 MBytes Memory Frequency 266.4 MHz (1:2) CAS# Latency (tCL) 4.0 clocks RAS# to CAS# (tRDC) 4 clocks RAS# Precharge (tRP) 4 clocks Cycle Time (tRAS) 11 clocks System System Manufacturer Hewlett-Packard System Name HP Compaq nx8220 (PY518ET#ABD) System S/N CNU5521W15 Mainboard Vendor Hewlett-Packard Mainboard Model 0934 BIOS Vendor Hewlett-Packard BIOS Version 68DTV Ver. F.0F BIOS Date 09/15/2005 Memory SPD Module 1 DDR2, PC2-4300 (266 MHz), 1024 MBytes, Samsung Software Windows Version Microsoft Windows XP Professional Service Pack 2 (Build 2600) DirectX Version 9.0c 8.2.1. Dual Core Systeme CPU-Z 1.37 report file: Markus Hanses Processor(s) Number of processors 1 Number of cores 2 per processor Number of threads 2 (max 2) per processor Name Intel Core Duo T2300 Code Name Yonah Specification Genuine Intel(R) CPU T2300 @ 1.66GHz Package Socket 479 mPGA Family/Model/Stepping 6.E.8 Extended Family/Model 6.E Core Stepping C0 Technology 65 nm Core Speed 1651.1 MHz Multiplier x Bus speed 10.0 x 165.1 MHz Rated Bus speed 660.4 MHz Stock frequency 1666 MHz Instruction sets MMX, SSE, SSE2, SSE3 L1 Data cache 2 x 32 KBytes, 8-way set associative, 64-byte line size L1 Instruction cache 2 x 32 KBytes, 8-way set associative, 64-byte line size L2 cache 2048 KBytes, 8-way set associative, 64-byte line size Chipset & Memory Northbridge Intel i945GM rev. 03 Southbridge Intel 82801GHM (ICH7-M DH) rev. 01 Memory Type DDR2 Memory Size 2048 MBytes Memory Frequency 264.2 MHz (5:8) CAS# Latency (tCL) 4.0 clocks RAS# to CAS# (tRDC) 4 clocks RAS# Precharge (tRP) 4 clocks Cycle Time (tRAS) 12 clocks Bank Cycle Time (tRC) 16 clocks System System Manufacturer Dell Inc. System Name MXC061 System S/N BS5S82J Mainboard Vendor Dell Inc. Mainboard Model 0MG532 BIOS Vendor Dell Inc. BIOS Version A04 BIOS Date 07/31/2006 Memory SPD Module 1 DDR2, PC2-4300 (266 MHz), 1024 MBytes, Nanya Technology Module 2 DDR2, PC2-4300 (266 MHz), 1024 MBytes, Nanya Technology Software Windows Version Microsoft Windows XP Home Edition Service Pack 2 (Build 2600) DirectX Version 9.0c CPU-Z 1.37 report file: Markus Rüger Processor(s) Number of processors 1 Number of cores 2 per processor Number of threads 2 (max 2) per processor Name Intel Core Duo T2500 Code Name Yonah Specification Genuine Intel(R) CPU T2500 @ 2.00GHz Package Socket 479 mPGA Family/Model/Stepping 6.E.8 Extended Family/Model 6.E Core Stepping C0 Technology 65 nm Core Speed 1999.4 MHz Multiplier x Bus speed 12.0 x 166.6 MHz Rated Bus speed 666.5 MHz Stock frequency 2000 MHz Instruction sets MMX, SSE, SSE2, SSE3 L1 Data cache 2 x 32 KBytes, 8-way set associative, 64-byte line size L1 Instruction cache 2 x 32 KBytes, 8-way set associative, 64-byte line size L2 cache 2048 KBytes, 8-way set associative, 64-byte line size Chipset & Memory Northbridge Intel i945PM rev. 03 Southbridge Intel 82801GHM (ICH7-M DH) rev. 01 Graphic Interface PCI-Express PCI-E Link Width x16 PCI-E Max Link Width x16 Memory Type DDR2 Memory Size 2048 MBytes Memory Frequency 333.2 MHz (1:2) CAS# Latency (tCL) 5.0 clocks RAS# to CAS# (tRDC) 5 clocks RAS# Precharge (tRP) 5 clocks Cycle Time (tRAS) 13 clocks Bank Cycle Time (tRC) 21 clocks System System Manufacturer Dell Inc. System Name Latitude D820 System S/N GSC9C2J Mainboard Vendor Dell Inc. Mainboard Model 0JF242 BIOS Vendor Dell Inc. BIOS Version A01 BIOS Date 03/23/2006 Memory SPD Module 1 DDR2, PC2-5300 (333 MHz), 1024 MBytes, Samsung Module 2 DDR2, PC2-5300 (333 MHz), 1024 MBytes, Samsung Software Windows Version Microsoft Windows XP Professional Service Pack 2 (Build 2600) DirectX Version 9.0c