Der Prozessor

Seminarvortrag von Viacheslav Mlotok

SS2005 Universität Mannheim, Lehrstuhl für Rechnerarchitektur

1 Inhalt

• Entwicklungsziele

• Cell Architektur – Power Processor Element – Synergistic Processor Element – Memory Interface Controller – Bus Interface Controller – Element Interconnect Bus • Software Cells

• Anwendungs- und Produktbeispiele

• Fazit

• Quellenangaben 2 Entwicklungsziele

Quelle: [9] • Hauptziel: neue Architektur für die Storage effiziente Verarbeitung von Logic Multimedia- und Grafikdaten der Cache nächsten Generation

• Aufbau eines modernen RISC Control Logic Prozessors IF ID

– großer Cache Dispatch – out-of-order execution, speculative execution, hardware branch prediction, predication, etc. – superscalare Architektur, tiefe Pipelines Issue Logic

• 40% Performancezuwachs bei Execution Verdoppelung der Anzahl von Logic Vector FP Units Unit Integer Units LS Unit Transistoren Execution Core

Reorder

Commit Commit Unit

3 Entwicklungsziele

• Performance pro Transistor als Quelle: [9] Maß Storage Logic • Mikroarchitektur vereinfachen und Komplexität auf die Software Local Storage verlagern

• Control Logic kein Cache - nur ein schneller IF

lokaler Speicher ID • großes allgemeines Registerfile, Dispatch

data fetch und branch prediction Execution Logic in Software

• Multicore anstatt tiefen Pipelines Vector Arithmetic Units Permute LS Channel Branch Unit Unit Unit Unit Execution Core

Commit Commit Unit

4 Cell Architektur

Quelle: [8] • gemeinsame Entwicklung von IBM, Sony und

• 90nm SOI, 8 Metalllagen

• 234 Mio. Transistoren

2 • 221mm Die-Größe

5 Cell Architektur

Quelle: [1] • SoC-Design

• besteht aus

– PowerPC Core mit L2 Cache – 8 SIMD Prozessoren – Memory und I/O Interfaces – Testeinheit für testing, monitoring und debugging

• 9 Prozessorkerne, 10-way Multithreading

Quelle: [1] • high performance distributed, parallel computing

• Virtualization technology

• modularer Aufbau

• universeller Einsatz: vom PDA bis zum Server

6 Cell Architektur

• 4 GHz @ 1.1 Volt, 50-80 Watt Verlustleistung

• 4.6 GHz @ 1.3 Volt

• Zukunft: 5.6 GHz @ 1.4 Volt, 180 Watt Verlustleistung

• 256 GFlops @ 4 GHz (single precision, nicht IEEE kompatibel)

• 26 GFlops @ 4 GHz (double precision, IEEE kompatibel)

Quelle: [2]

7 Power Processor Element (PPE)

• modifizierter 64bit PowerPC mit VMX-Erweiterung (Vector Multimedia Extension)

• in-order execution, dual-issue

• 2-way Multithreading, round-robin scheduling

• 32 KB L1 Instruktions- und Datencache, 512 KB L2 Cache

• Hostprozessor für die SIMD Prozessoren, führt allgemeine Aufgaben aus

Quelle: [1] 8 Synergistic Processor Element (SPE)

• 128bit unabhängige SIMD-Einheit, single-precision optimiert

• in-order execution, dual-issue

• 21 Mio. Transistoren

• 2.5 x 5.81 mm

• von PPE verwaltet, programmierbar in Hochsprachen (z.B. C, C++)

Quelle: [1] 9 Synergistic Processor Element (SPE)

Quelle: [3] • Instruktionsformat: 32bit fixed-length, 3 Operanden, 1 Ergebnis

• 128bit Operanden (4 x 32bit)

• dreistufiges Memorymodell

– Hauptspeicher, lokaler Speicher, Register – Speicherzugriffe mit DMA (kohärent auf den Hauptspeicher)

• Stream Processing (Chaining) möglich

– SPEs von anderen Cells können dabei benutzt werden, falls eine längere Kette gebraucht wird

• 4 Operationen/Takt => 256 GFlops für 8 SPEs @ 4 GHz (8SPEs x 4GHz x 2 FPUs x 4 Operationen)

• data fetch und branch prediction in Software

– 18 Takte branch misprediction penalty

10 Synergistic Processor Element (SPE)

Quelle: [3] • 256 KB Local Store (LS)

• 128 x 128bit Registerfile mit 6 read ports und 2 write ports, 2 Takte Zugriffslatenz

• DMA-Einheit (Speicherzugriffe)

• MMU

• BIU - Bus Interface Unit (zur Anbindung an den gemeinsamen Bus)

• RTB - Testblock mit ABIST (Array Build In Self Test)

• ATO - Atomic Memory Unit (Kohärenz)

11 Synergistic Processor Element (SPE) Local Store (LS) Quelle: [3]

• array of single ported, pipelined SRAMs

• 256 KB groß (4 x 64 KB)

• L1 Cache-Ersatz für Instruktionen und Daten

• nicht kohärent, nur lokale Zugriffe

• Leselatenz = 6 Takte, Schreiblatenz = 4 Takte

• quadword (16 Byte) oder line (128 Byte) Zugriffe

• drei Prioritätsstufen

– DMA – Load und store – Instruction fetch

• 16 Byte/Takt L/S Bandbreite

• 128 Byte/Takt DMA Bandbreite 12 Synergistic Processor Element (SPE) DMA Einheit Quelle: [3]

• steuert den Datenverkehr

• lokale und externe requests

• Adressübersetzung durch MMU

• bis zu 16 outstanding requests werden unterstützt

• 16 KB pro request

• programmiert durch channel interface

– message passing interface – bis zu 128 unidirektionale Kanäle (blocking oder nonblocking) – read channel, write channel und read channel count

13 Synergistic Processor Element (SPE)

Quelle: [3] • zwei Pipelines, „even“ und „odd“

• 6 Ausführungseinheiten

Quelle: [3]

14 Synergistic Processor Element (SPE) Pipelinetiefe, Latenzen Quelle: [3] Execution Pipeline Instruction Unit Instructions Pipe Depth Latency

Simple Fixed Word arithmetic, logicals, counting Even 2 2 leading zeros, selects and compares Simple Fixed Word shifts and rotates Even 3 4 Single Precision Multiply-accumulate Even 6 6 Single Precision Integer multiply-accumulate Even 7 7 Pop count, absolute sum of differences, byte Byte Odd 3 4 average, byte sum Quadworld shifts, rotates, gathers, Permute shuffles as well as reciprocal estimates Odd 3 4 Load Store Load and store Odd 6 6

Channel Channel read/write Odd 5 6 Branch Branches Odd 3 4 15 Memory Interface Controller (MIC)

• Unterstüzung von 3.2 GHz XDR DRAM Memory von Rambus (lizensiert von Sony und Toshiba)

• XIO Interface - ultra high-speed parallel interface between multiple chips

• 25.6 GB/s memory bandwidth (dual channel)

• maximal 4.5 GB adressierbar (72 DRAM Devices @ 512Mb)

Quelle: [1] 16 XDR Memory System

• 1024bit Blockzugriff

• unterteilt in „sandboxes“

– Statusbits bestimmen, welche SPEs darauf zugreifen darf (memory protection) Quelle: [11]

• command and address bus

– unidirektional, 12bit breit, 800 Mb/s – bis zu 36 DRAM Devices

• Datenbus

– 36 bidirektionale point-to-point Verbindungen (3.2 Gb/s) – konfigurierbar nach Anzahl der Devices – 3.2 GHz (8 x 400 MHz) - octal data rate (ODR) – maximale Bandbreite 12.8 GB/s (2 Devices, 16bit, 1 channel)

17 Bus Interface Controller

• Kommunikation mit dem Rest des Systems

• FlexIO Interface (entwickelt von Rambus)

• kohärentes Interface für SMP (Symmetrical Multi Processing), nicht kohärentes Interface für I/O

• 44.8 GB/s outbound bandwidth, 32 GB/s inbound bandwidth

• zusammen 76.8 GB/s I/O Bandbreite

Quelle: [1] 18 Bus Interface Controller

• 12 byte lanes

• Byte lane - 8bit breite, unidirektionale, point-to-point Verbindung

• 6.4 GB/s pro byte lane

• asymmetrische Konfiguration

– 7 byte lanes outbound, 5 byte lanes inbound – Bildung von kohärenten und nicht kohärenten Gruppen

Quelle: [1] 19 Element Interconnect Bus (EIB)

• verbindet alle Einheiten des Cells miteinander

• kohärent

• Datenstruktur

– 4 unidirektionale 128bit Ringe – 96 Byte/Takt, bis zu 128 outstanding requests

• Kontrollstruktur

Quelle: [1] – ein Bus

• läuft mit halber Cell-Taktfrequenz

20 Software Cells

• Apulet - Bündel aus einem Datenobjekt und erforderlichem Programmcode

• vom PPE initialisiert und direkt von SPEs ausgeführt

• systemunabhängig

• können über das Netzwerk verschickt werden

Quelle: [4]

21 Beispiel - Digital TV Receiver

• erforderliche Schritte (MPEG 2)

– COFDM demodulation – MPEG audio and video decode – Error correction – Video scaling – Demultiplexing – Display construction – Descrambling – Contrast and brightness processing

COFDM Error Demuliplexing Audio & Video Display Contrast & Demodulation Correction & Descrambling Video Decode Scaling Construction Brightness Processing

Quelle: [10] 22 Flexibilität

Quelle: [1] • direkte Verbindung zweier Cells durch FlexIO, indirekt über einen Switch

• unterschiedliche Systemkonfigurationen

– Spielekonsolen, HDTVs – Home entertaiment Anlagen – Workstations, Supercomputers

Quelle: [1]

Quelle: [1] 23 Cell Processor Based Workstation (CPBW)

• Cell Based Blade Server Board Prototype

– 2 Cells, 512MB XDR DRAM, 2 South Bridges Quelle: [6] – 2.4-2.8 GHz (3 GHz im Labor) – 200 GFlops @ 3 GHz (400 GFlops pro Board) – 7 Boards pro Rack – 23 x 43 cm – Linux 2.6.11

Quelle: [6]

24 Playstation 3

• 1 Cell mit 7 SPEs @ 3.2 GHz, 256 MB XDR DRAM

• Grafikchip von NVidia @ 550 MHz, 256 GDDR3 DRAM

• 3 Ethernet-Ports, 802.11b/g WLAN, Bluetooth 2.0, optionale Festplatte

• Verfügbarkeit: Frühling 2006, Preis: 300-400 Euro

Quelle: [7]

Quelle: [7] 25 Fazit

• ungewöhnliche Architektur, die sich von der Architektur aktueller Prozessoren unterscheidet

• vereinfachtes Design, teilweise ohne klassische Ansätze der Rechnerarchitektur

• hohe Performance durch massive Parallelisierung der Aufgaben

• neues Programmiermodell notwendig, um SPEs effizient nutzen zu können

• SPEs werden schwierig zu programmieren sein

• primärer Einsatz im Bereich des Multimedia (single precision)

• offene Frage: Verwendung in Supercomputern (double precision) und in Desktop-PCs (Konkurrenz zu x86)

26 Quellenangaben

• [1]: H. Peter Hofstee, Ph. D., „Power Efficient Processor Design and the Cell Processor“ http://www.hpcaconf.org/hpca11/slides/Cell_Public_Hofstee.pdf http://www.hpcaconf.org/hpca11/papers/25_hofstee-cellprocessor_final.pdf

• [2]: D. Pham et. al. „The Design and Implementation of a First-Generation CELL Processor“, International Solid-State Circuits Conference Technical Digest, Feb. 2005 http://www-306.ibm.com/chips/techlib/techlib.nsf/products/Cell

• [3]: B. Flachs et. al. „A Streaming Processing Unit for a CELL Processor“, International Solid-State Circuits Conference Technical Digest, Feb. 2005 http://www-306.ibm.com/chips/techlib/techlib.nsf/products/Cell

• [4] M. Suzuoki et.al. „Resource dedication system and method for a computer architecture for broadband networks“, United State Patent, Oct. 26, 2004 http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PALL&p=1&u=/netahtml/srchnum.htm&r=1&f=G&l=50&s1=6,809,734.WKU.&OS=PN/6,809,734&RS=PN/6,809,734

• [5] K. Krewell, „Cell Moves into the Limelight“, Microprocessor Online, Feb. 14, 2005 http://www-306.ibm.com/chips/techlib/techlib.nsf/products/Cell

• [6]: „IBM Discloses Cell Based Blade Server Board Prototype“ http://techon.nikkeibp.co.jp/english/NEWS_EN/20050525/105050/

• [7]: „SCE Unveils Next-Generation Game System PLAYSTATION 3 Featuring 3.2 GHz Cell“ http://techon.nikkeibp.co.jp/english/NEWS_EN/20050518/104787/

• [8] http://www.the-cell-chip.de/erstes_foto.html 27 Quellenangaben

• [9] J. Stokes, „Introducing the IBM/Sony/Toshiba Cell Processor“, Arstechnica, Feb 08, 2005 http://arstechnica.com/articles/paedia/cpu/cell-1.ars/1

• [10]: N. Blachford, „Cell Architecture Explained“ http://www.blachford.info/computer/Cells/Cell0.html

• [11]: D. Wang, „ISSCC 2005: The CELL Microprocessor“, Real World Technologies, Feb 10, 2005 http://www.realworldtech.com/page.cfm?ArticleID=RWT021005084318

• [12] D. Wang, „CELL Microprocessor Revisited“, Real World Technologies, Feb 28, 2005 http://www.realworldtech.com/page.cfm?ArticleID=RWT022805234129

28