Představení a vývoj architektur vektorových procesorů Drong Lukáš Dro098 1
Obsah Úvod 3 Historie, současnost 3 Architektura 4 - pipelining 4 - Operace scatter a gather 4 - vektorové registry 4 - Řetězení 5 - Skalární registry 5 - Prokládaná paměť 5 Typy vektorových procesorů 5 Architektura vektorového procesoru CELL 6 Použitá literatura 9 2
Úvod Tyto procesory obsahují instrukční soubor, který zahrnuje současné vykonávání matematických operací nad množinou datových prvků. Délka vektoru činila 64 nebo 128 reálných čísel s pohyblivou řadovou čárkou. Vektorové procesory se nejvíce využívaly u superpočítačů v 80. a 90. letech minulého století pro vědecké výpočty a také pro předpověď počasí. V dnešní době se uplatňuje návrh procesoru, který zahrnuje jednotlivé instrukce pro zpracování vektoru na vícenásobné skupině dat, známé jako SIMD ( Single Instruction Multiple Data), a také vícenásobné instrukce pro zpracování vektoru na vícenásobných skupinách dat MIMD (Multiple Instruction Multiple Data). Historie, současnost Základní myšlenky vektorového procesoru CDC Star 100 byly formulovány v 60. letech minulého století. K realizaci došlo až v 70. letech. V roce 1976 byl uveden počítač Cray-1. Tento superpočítač obsahoval 8 vektorových registrů, které obsahovaly čtyřiašedesát 64. bitových slov, 12 různých pipelinů nebo funkčních jednotek. Mezi další společnosti, které představily vektorové stroje podobné Cray-1 byly Fujitsu, Hitachi a Nec. Poté Cray následoval k výrobě výkonnějších superpočítačů od Cray X-MP, Cray-2, Cray Y- MP, Cray-3. Moderní herní konsole obsahují ve své architektuře vektorové jednotky. Ve spolupráci firem IBM, Toshiba a Sony v roce 2000 začal projekt procesoru CELL, který obsahoval jednu skalární jednotku a 8 vektorových jednotek. 3
Architektura U vektorových procesorů je výpočet prvku vektoru nezávislý na ostatních prvků vektoru. Operace mohou být prováděny najednou a zároveň nezávisle na sobě. Funkční jednotky vektorových procesorů provádějí základní aritmetické a logické operace jako jsou: - součet - rozdíl - součin - posun Nejdůležitější charakteristikou vektorových procesorů: - pipelining - vektorové registry - Řetězení - Operace scatter a gather - Skalární registry - Prokládaná paměť Pipelining Ve skutečnosti se nepočítají složky vektoru najednou. Paralelita je řešena právě pomocí pipeliningu (roura). Operace scatter a gather Tyto operace slouží pro shromáždění a rozptýlení prvků ve vektoru. Např. chceme prvky v1,v3,v5,v7 z vektoru v(v1,v2,vn) použijeme operaci scatter pro přeformátování výstupu. Vektorové registry V obyčejných registrech se uchovává jen jedna hodnota. Naproti tomu u vektorových registrů může být uchováno více prvků vektoru najednou. Řetězení Funkční jednotky vektorových procesorů jsou navzájem zřetězeny (chaining), takže výsledky z jedné jednotky mohou být přesměrovány, jako vstup do jiné jednotky za účelem dalšího zpracovaní, čímž je umožněno překrývaní datově závislých instrukcí. 4
Skalární registry Tyto registry slouží pro uchování jedné hodnoty jako obecné registry, ale jsou uzpůsobeny k tomu, aby mohly být využity ve vektorovém pipelinu. Prokládaná paměť Paměť je rozdělena do bloků, které jsou schopny pracovat nezávisle na sobě a tím je možná paralelní komunikace a přenosy. Bez této prokládané paměti nebo jiného způsobu poskytování operandů by bylo zpracování celého vektoru s jedinou instrukcí dosti redukovaná. Pro použití větší délky vektoru se u vektorových procesorů používá technika Strip Mining: -Generace smyčky, která zachází s MVL (Maximum Vector Length) prvky pomocí iterací Nastavení operace na MVL prvcích je přeložená do jediné instrukce vektoru Typy vektorových procesorů: 1. Paměť-paměť U těchto procesorů se operandy načítají přímo do pipeline a ukládají se přímo do paměti. U těchto procesorů se nevyužívá registr. Procesor CDC Cyber 205 je takto řešen. 2. Registr-registr Tyto procesory oproti procesorům paměť-paměť načítaní operandy nejprve do vektorových registrů. Výsledky se poté uloží do těchto registrů. 5
Architektura vektorového procesoru CELL Cell Block Diagram Zde se budu věnovat architektuře vektorového procesoru CELL, která vychází od společností Sony, Toshiba a IBM. Tento procesor se skládá ze dvou prvků: - PPE (Power Procesor Element) - SPE(Synergistic Processing Elements) a také ze sběrnice EIB (Element Interconnect Bus) CELL procesor je vyroben 90nm technologií SOI a obsahuje 234 miliónů tranzistorů. Tento procesor má disponovat > 256 GFLOPS při jednoduché přesnosti a dále > 26 GFLOPS při dvojité. Taktovací kmitočet počítače > 4 GHz. Je postaven na IBM 64 - bitových výkonových jádrech. 6
PPE -je založeno na POWER architektuře, která se skládá z obousměrné multivláknového jádra vykonávající jako kontrolér pro osm SPE, který vykonává většinu výpočetního výkonu. PPE pracuje s konvekčními operačními systémy, zatímco SPE vykonává funkci pro náročnější výpočty. PPE obsahuje: - Cache L1 64KB, kde 32KB je pro instrukce a dalších 32KB pro data - Cache L2 512KB. - MMU (jednotka pro správu paměti) - IU (instrukční jednotku) Velikost cache linky je 128 B. SPE V tomto procesoru je obsaženo 8 SPE jednotek a z toho každá SPE jednotka se skládá ze součinné procesové jednotky SPU, LS paměti a funkčních bloků SXU (Synergistic Execution Unit). SPE je 128 bitový procesor architektury RISC. Dále každá jednotka obsahuje 256KB paměť pro instrukce a data nazývanou Local Storage. Každá SPE jednotka může disponovat až s 4GB lokální pamětí. Tyto jednotky mohou pracovat nezávisle na sobě.v případě potřeby mohou spolupracovat i předávat si mezi sebou data. 7
SMF SMF kontrolér přesunuje s daty a vykonává synchronizaci v paralelním SPU zpracování a realizuje propojení sběrnice BUS. SPU SPU architektura podporuje využívat programově techniky kompilátoru, k tomu, aby se zaměřil na paralelní datové provedení. EIB -spojuje různé čipové prvky systému: PPE procesor, paměťový kontrolér (MIC), osm SPE koprocesorů a dvě volná I/O rozhraní. 8
Cell Broadband Engine Seznam použité literatury http://en.wikipedia.org/wiki/vector_processor http://download.matfyz.info/swi087/jirovsky/5%20procesory.pdf http://www.root.cz/clanky/architektura-procesora-cell/ http://en.wikipedia.org/wiki/cell_%28microprocessor%29 http://homel.vsb.cz/~las03/pa/index.html http://www.svethardware.cz/art_doc-071410f96de4ab46c12574fd005ca1e5.html http://domino.research.ibm.com/comm/research.nsf/pages/r.arch.innovation.html 9
10