ˇ e vysok´e uˇcen´ı technick´e v Praze Cesk´ Fakulta elektrotechnick´a
ˇ VUT FEL katedra pocˇı´tacˇu˚ C
Bakal´aˇrsk´a pr´ace
Nov´ e trendy v architektuˇ re procesor˚ u poˇ c´ıtaˇ c˚ u IBM PC kompatibiln´ıch Tom´aˇs Hruˇska
ˇ Vedouc´ı pr´ace: Ing. Ivan Simeˇ cek
Studijn´ı program: Elektrotechnika a informatika strukturovan´ y bakal´aˇrsk´ y Obor: Informatika a v´ ypoˇcetn´ı technika kvˇeten 2009
ii
Podˇ ekov´ an´ı ˇ M´e podˇekov´ an´ı patˇr´ı vedouc´ımu projektu Ing. Ivanu Simeˇ ckovi, za jeho pomoc pˇri tvorbˇe m´e bakal´aˇrsk´e pr´ ace. iii
iv
Prohl´ aˇ sen´ı Prohlaˇsuji, ˇze jsem svou bakal´ aˇrskou pr´aci vypracoval samostatnˇe a pouˇzil jsem pouze podklady uveden´e v pˇriloˇzen´em seznamu. Nem´am z´ avaˇzn´ y d˚ uvod proti uˇzit´ı tohoto ˇskoln´ıho d´ıla ve smyslu §60 Z´akona ˇc. 121/2000 Sb., o pr´avu autorsk´em, o pr´ avech souvisej´ıc´ıch s pr´avem autorsk´ ym a o zmˇenˇe nˇekter´ ych z´akon˚ u (autorsk´ y z´ akon).
V Praze dne 10.5. 2009
.............................................................
v
vi
Abstrakt Pr´ace popisuje vlastnosti procesor˚ u IBM/PC kompatibiln´ıch a vysvˇetlen´ı z´akladn´ıch technologi´ı v tˇechto procesorech pouˇzit´ ych. Pops´any jsou procesory firem Intel Corporation, Advanced Micro Devices (AMD), VIA Technologies a tak´e dva samostatnˇe popsan´e procesory a to Cell procesor a procesor Xenon. V prvn´ı ˇc´ asti pr´ ace jsou pops´ any z´ akladn´ı vlastnosti uˇz existuj´ıc´ıch procesor˚ u od v´ yˇse zm´ınˇen´ ych firem a tak´e dvou samostatnˇe zpracovan´ ych procesor˚ u. D´ale jsou v t´eto ˇc´asti vysvˇetleny z´akladn´ı architektury, kter´e jsou pouˇzity v procesorech firem Intel Corporation a Advanced Micro Devices (AMD). ˇ aktu´alnˇe existuj´ıc´ı, ˇci teprve pl´anovan´e procesory od Ve druh´e ˇc´ asti pr´ ace jsou uvedeny bud vˇsech tˇr´ı v´ yˇse zm´ınˇen´ ych firem. Jsou zde pops´any jejich zn´am´e specifikace a tak´e oˇcek´avan´e vlastnosti, kter´e by tyto procesory mˇely m´ıt. D´ale jsou zde vysvˇetleny nov´e architektury, na kter´ ych tyto procesory budou postaven´e. Tˇret´ı ˇc´ast pr´ ace popisuje vytvoˇren´e benchmarky, zp˚ usoby jak´ ymi tyto benchmarky pracuj´ı a ukazuje pˇr´ıklady dosaˇzen´ ych v´ ysledk˚ u.
Abstrakt Thesis describes the characteristics of processors IBM / PC compatible, and explanation of basic technologies used in these processors. There are described processors from companies Intel Corporation, Advanced Micro Devices (AMD), VIA Technologies, and also two separately described processors, they are the Cell processor and the processor Xenon. In the first part of the thesis are described the basic characteristics of existing processors, from the above mentioned companies as well as two separately processed processors. There are explained the basic architecture in this section, that are used in processors from companies Intel Corporation and Advanced Micro Devices (AMD). In the second part of the thesis are mentioned either currently existing or planned only processors from the three above mentioned companies. There are described their well known specifications and the expected features that these processors should have. There are also explained the new architecture on which these processors will be built. The third part of the work describes established benchmarks, the way these benchmarks work and shows examples of results achieved.
vii
viii
Obsah Seznam obr´ azk˚ u
xii
1 Teoretick´ yu ´ vod 1.1 Intel Corporation . . . . . . . . . . . . . . . . . . . . 1.1.1 Prvn´ı generace procesor˚ u . . . . . . . . . . . 1.1.2 P5 mikroarchitektura . . . . . . . . . . . . . 1.1.3 P6 mikroarchitektura . . . . . . . . . . . . . 1.1.4 Netburst architektura . . . . . . . . . . . . . 1.1.5 Core architektura . . . . . . . . . . . . . . . . 1.1.6 Nehalem architektura . . . . . . . . . . . . . 1.1.7 Atom architektura . . . . . . . . . . . . . . . 1.2 Technologie procesor˚ u Intel . . . . . . . . . . . . . . 1.2.1 P6 Family mikroarchitektura . . . . . . . . . 1.2.2 Intel Netburst architektura . . . . . . . . . . 1.2.3 Intel Core architektura . . . . . . . . . . . . . 1.2.4 Architektura Intel Atom . . . . . . . . . . . . 1.2.5 Architektura Intel Nehalem . . . . . . . . . . 1.2.6 SIMD instrukce . . . . . . . . . . . . . . . . . 1.2.6.1 SSE4 instrukˇcn´ı sada . . . . . . . . 1.2.7 Hyper-Threading technologie . . . . . . . . . 1.2.8 Multi-Core technologie . . . . . . . . . . . . . 1.2.9 Intel 64 architektura . . . . . . . . . . . . . . 1.2.10 Intel virtualization technologie . . . . . . . . 1.2.11 Intel IA64 technologie . . . . . . . . . . . . . 1.2.12 Pˇrehled z´ akladn´ıch vlastnost´ı procesor˚ u Intel 1.2.12.1 32 bitov´e procesory . . . . . . . . . 1.2.12.2 64 bitov´e procesory . . . . . . . . . 1.2.12.3 Itanium procesorov´a ˇrada . . . . . . 1.3 Advanced Micro Devices (AMD) . . . . . . . . . . . 1.3.1 AMD K5 architektura . . . . . . . . . . . . . 1.3.2 AMD K6 architektura . . . . . . . . . . . . . 1.3.3 AMD K7 architektura . . . . . . . . . . . . . 1.3.4 AMD K8 architektura . . . . . . . . . . . . . 1.3.5 AMD K10 architektura . . . . . . . . . . . . 1.3.6 AMD K10.5 architektura . . . . . . . . . . . 1.4 Technologie procesor˚ u AMD . . . . . . . . . . . . . . 1.4.1 3DNow! . . . . . . . . . . . . . . . . . . . . . 1.4.2 Enhanced 3DNow! . . . . . . . . . . . . . . . 1.4.3 HyperTransport . . . . . . . . . . . . . . . . 1.4.4 AMD64 architektura . . . . . . . . . . . . . . 1.5 Procesory PowerPC . . . . . . . . . . . . . . . . . . 1.6 Procesory VIA . . . . . . . . . . . . . . . . . . . . . 1.6.1 VIA C3 procesorov´ a ˇrada . . . . . . . . . . . 1.6.2 VIA C7 procesorov´ a ˇrada . . . . . . . . . . . 1.6.3 VIA Nano(Isaiah) . . . . . . . . . . . . . . . 1.7 Procesor Cell . . . . . . . . . . . . . . . . . . . . . . 1.8 Procesor Xenon . . . . . . . . . . . . . . . . . . . . . ix
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1 1 1 2 2 3 5 6 6 7 7 8 10 11 12 14 15 16 16 18 18 19 21 21 22 24 25 25 25 27 29 30 32 33 33 33 33 35 37 39 40 40 41 42 44
2 Budouc´ı generace procesor˚ u 2.1 Intel Corporation . . . . . . . . . 2.1.1 Intel Dunnigton procesor 2.1.2 Intel Tukwila . . . . . . . 2.1.3 Intel Westmere . . . . . . 2.1.4 Intel Larabee . . . . . . . 2.1.5 Intel Sandy Bridge . . . . 2.1.6 Intel Ivy Bridge . . . . . . 2.1.7 Intel Haswell . . . . . . . 2.2 Advanced Micro Devices (AMD) 2.3 POWER6 architektura . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
46 46 46 46 47 47 48 48 48 49 51
3 Benchmarky a jejich v´ ysledky 3.1 Hardwarov´e benchmarky - CPU . . . . . . . . . . . . . . . . . . . 3.1.1 Mˇeˇren´ı ˇcasu u benchmark˚ u . . . . . . . . . . . . . . . . . 3.1.1.1 Hardwarov´e metody mˇeˇren´ı ˇcasu bˇehu programu 3.1.1.2 Softwarov´e metody mˇeˇren´ı ˇcasu bˇehu programu 3.2 Popis demonstraˇcn´ıho benchmarku . . . . . . . . . . . . . . . . . 3.2.1 Grafick´e rozhran´ı aplikace . . . . . . . . . . . . . . . . . . 3.2.2 Jednotliv´e testy . . . . . . . . . . . . . . . . . . . . . . . . 3.2.3 V´ ysledky test˚ u . . . . . . . . . . . . . . . . . . . . . . . . 3.2.3.1 V´ ysledky test˚ u na v´ıcej´adrovost . . . . . . . . . 3.2.3.2 V´ ysledek testu cache pamˇet´ı . . . . . . . . . . . 3.2.3.3 CPU usage graf . . . . . . . . . . . . . . . . . . 3.2.4 Benchmarky v´ıcej´ adrov´ ych procesor˚ u. . . . . . . . . . . . 3.2.4.1 Teorie v´ıcej´ adrov´ ych benchmark˚ u . . . . . . . . 3.2.5 Benchmarky pro pr´ aci s cache pamˇet´ı . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
53 53 53 54 54 54 55 56 57 57 59 59 60 60 62
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
4 Z´ avˇ er
63
5 Seznam literatury
65
A Vymezen´ı pouˇ zit´ ych pojm˚ u A.1 V´ yrobn´ı proces procesor˚ u . . A.2 J´adro procesoru . . . . . . . . A.3 Registry procesoru . . . . . . A.4 Instrukce procesoru . . . . . . A.5 Cache pamˇeˇt a jej´ı u ´rovnˇe . . A.6 FSB sbˇernice a jej´ı frekvence A.7 Procesorov´ a pipeline . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
67 67 67 67 67 67 67 67
B Postup psan´ı benchmark˚ u pomoc´ı programovac´ıho jazyka Java
68
C Obsah pˇ riloˇ zen´ eho CD
69
x
Seznam obr´ azk˚ u 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.18 1.19 1.20 1.21 1.22 1.23 1.24 1.25 1.26 1.27 1.28 1.29 1.30 1.31 1.32 1.33 1.34 1.35
P6 mikroarchitektura . . . . . . . . . . . . . . . . . . . . . . . . . . Netburst mikroarchitektura . . . . . . . . . . . . . . . . . . . . . . Core mikroarchitektura . . . . . . . . . . . . . . . . . . . . . . . . Intel Atom architektura . . . . . . . . . . . . . . . . . . . . . . . . Intel Atom pipeline . . . . . . . . . . . . . . . . . . . . . . . . . . . architektura procesor˚ u Intel Nehalem . . . . . . . . . . . . . . . . . SIMD instrukce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Hyper-Threading . . . . . . . . . . . . . . . . . . . . . . . . . . . . MultiCore technologie - 2 j´adra . . . . . . . . . . . . . . . . . . . . MultiCore technologie - 4 j´adra . . . . . . . . . . . . . . . . . . . . MultiCore technologie - 4 j´adra Intel Core i7 . . . . . . . . . . . . Itanium architektura . . . . . . . . . . . . . . . . . . . . . . . . . . 32 bitov´e procesory . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 bitov´e procesory ˇc´ ast prvn´ı . . . . . . . . . . . . . . . . . . . . . 64 bitov´e procesory ˇc´ ast druh´a . . . . . . . . . . . . . . . . . . . . Itanium procesorov´ a ˇrada . . . . . . . . . . . . . . . . . . . . . . . AMD K5 architektura . . . . . . . . . . . . . . . . . . . . . . . . . AMD K6 architektura . . . . . . . . . . . . . . . . . . . . . . . . . AMD K6-2 architektura . . . . . . . . . . . . . . . . . . . . . . . . AMD K6-3 architektura . . . . . . . . . . . . . . . . . . . . . . . . AMD Athlon architektura . . . . . . . . . . . . . . . . . . . . . . . AMD K8 architektura . . . . . . . . . . . . . . . . . . . . . . . . . AMD K10 architektura . . . . . . . . . . . . . . . . . . . . . . . . 3DNow technologie . . . . . . . . . . . . . . . . . . . . . . . . . . . verze HyperTransport technologie . . . . . . . . . . . . . . . . . . . HyperTransport technologie . . . . . . . . . . . . . . . . . . . . . . AMD64 technologie - registry . . . . . . . . . . . . . . . . . . . . . AMD64 technologie - operaˇcn´ı m´ody . . . . . . . . . . . . . . . . . srovn´ an´ı dostupnosti registr˚ u a z´asobn´ıku pro 32 a 64 bitov´ y m´od . pˇrehled 32 bitov´ ych procesor˚ u - ˇc´ast prvn´ı . . . . . . . . . . . . . . pˇrehled 32 bitov´ ych procesor˚ u - ˇc´ast druh´a . . . . . . . . . . . . . pˇrehled 64 bitov´ ych procesor˚ u . . . . . . . . . . . . . . . . . . . . . VIA Isaiah architektura . . . . . . . . . . . . . . . . . . . . . . . . Cell procesor architektura . . . . . . . . . . . . . . . . . . . . . . . Xenon procesor architektura . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8 9 10 11 12 13 15 16 17 17 18 20 21 22 23 24 25 26 26 27 28 29 31 33 34 35 36 36 37 38 39 39 42 44 45
2.1 2.2 2.3 2.4 2.5
Dunnington architektura . Tukwila architektura . . . Larrabee architektura . . AMD Puma architektura AMD Fusion architektura
3.1 3.2 3.3 3.4 3.5 3.6 3.7
Grafick´e rozhran´ı . . . . . . . . . . . V´ ysledn´ y graf . . . . . . . . . . . . . Graf pro r˚ uzn´e poˇcty vl´ aken . . . . . V´ ysledek cache testu . . . . . . . . . CPU usage graf . . . . . . . . . . . . z´ avislost urychlen´ı bˇehu benchmarku V´ ysledek cache testu . . . . . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
46 46 47 50 51
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . na poˇctu jader procesoru . . . . . . . . . . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
55 57 58 59 60 61 62
xi
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
C.1 adres´aˇrov´ a struktura pˇriloˇzen´eho CD . . . . . . . . . . . . . . . . . . . . . . . .
xii
69
´ UVOD ´ KAPITOLA 1. TEORETICKY
1
1 Teoretick´ yu ´ vod Z´akladn´ım motorem, mozkem, centr´alou a mnoha jin´ ymi v´ yrazy pojmenovatelnou souˇc´ ast´ı dneˇsn´ıch stoln´ıch poˇc´ıtaˇc˚ u je procesor. Nem˚ uˇzeme se zde omezit jen na stoln´ı poˇc´ıtaˇce, procesor dnes obsahuje uˇz skoro kaˇzd´ y kousek elektroniky se kterou se dennˇe setk´av´ame. Aˇt uˇz se jedn´ a o vˇeci stoln´ım poˇc´ıtaˇc˚ um bl´ızk´e (desktopy, servery a jin´e) nebo hern´ı konzole, audio techniku, praˇcky, ledniˇcky atd. ve vˇsem dnes procesor najdeme. Jak je tedy zˇrejm´e procesor je z´akladn´ı a v mnoha ohledech tak´e nejd˚ uleˇzitˇejˇs´ı souˇc´ast tˇechto zaˇr´ızen´ı. A co to tedy ten procesor je? Procesor (CPU - Central Processing Unit) je u ´stˇredn´ı v´ ykonnou jednotkou poˇc´ıtaˇce, kter´ a ˇcte z pamˇeti instrukce a na jejich z´ akladˇe vykon´av´a program. Procesor˚ u, kter´ ymi se v t´eto pr´ aci budu zab´ yvat, je jen nˇekolik a to z nˇekolika z´akladn´ıch d˚ uvod˚ u. Pokud se m´ ame zamˇeˇrit na procesory ve stoln´ıch poˇc´ıtaˇc´ıch, tak existuj´ı vlastnˇe jen dva velc´ı hr´ aˇci a to spoleˇcnosti Intel Corporation, Advanced Micro Devices (AMD). D´ale bych tak´e r´ad zm´ınil procesory firmy VIA Technologies. Samozˇrejmˇe existuje mnoho dalˇs´ıch v´ yrobc˚ u procesor˚ u, ale jejich zastoupen´ı ve stoln´ıch poˇc´ıtaˇc´ıch je miziv´e. S v´ yjimkou firmy Apple Inc. a jejich ˇrad poˇc´ıtaˇc˚ u Apple. Dalˇs´ımi dvˇema z´astupci, kter´ ym se v t´eto pr´aci chci vˇenovat, jsou procesory, kter´e jsou dnes zastoupeny ve dvou nejmodernˇejˇs´ıch hern´ıch konzol´ıch. Jsou to procesory Cell (hern´ı konzole Playstation 3) a Xenon (hern´ı konzole Xbox 360). Abychom se mohli bl´ıˇze pod´ıvat na trendy v souˇcasn´ ych procesorech, tak je nejprve nutno nahl´ednout do historie procesoru jako takov´eho a zjistit jak se postupnˇe vyv´ıjel, jak rostly jeho schopnosti a pˇrib´ yvaly nov´e vlastnosti.
1.1
Intel Corporation
Vˇsechno to tedy zaˇcalo v roce 1974 uveden´ım prvn´ıho procesoru od firmy Intel Corporation viz. [14] a to procesoru Intel 8080 a pokraˇcuje to dodnes aˇz po dneˇsn´ı procesory ˇrady Intel Core 2 Duo, Intel Core 2 Quad, Intel Xeon s´erie 5300 a 7300, Intel Core i7. 1.1.1
Prvn´ı generace procesor˚ u
Intel 8086 Jednalo se o dva 16 bitov´e procesory Intel 8086 a Intel 8088. Intel 8086 mˇel 16 bitov´e registry a 16 bitovou extern´ı datovou sbˇernici, coˇz mu pomoc´ı 20 bitov´eho adresov´an´ı d´avalo moˇznost adresovat aˇz 1 MB adresn´ıho prostoru. Intel 8088 byl podobn´ y, ale mˇel jen 8 bitovou extern´ı datovou sbˇernu. Z´ akladn´ım pˇr´ınosem tohoto procesoru byla implementace segmentace. Intel 186 Jedn´a se o n´ asledn´ıka Intel 8086 a 8088 procesor˚ u, kter´ y tak´e mˇel 16 bitovou extern´ı sbˇernici (ve verzi 80188 to byla 8 bitov´ a). Pracoval na frekvenci 6 MHz. Mˇel v sobˇe integrovan´e souˇc´ asti jako DMA kontroler nebo kontroler pˇreruˇsen´ı. Intel 286 Nejv´ yraznˇejˇs´ı novinkou t´eto ˇrady je zaveden´ı operac´ı v chr´anˇen´em m´odu. Byly schopn´e adresovat pamˇeˇt aˇz o velikost 16 MB.
´ UVOD ´ KAPITOLA 1. TEORETICKY
2 Intel 386
Intel 386 byl skuteˇcnˇe prvn´ım 32 bitov´ ym procesorem, kter´ y pˇredstavil 32 bitov´e registry. Spodn´ıch 16 bit˚ u bylo vyuˇzito pro zpˇetnou kompatibilitu s procesory ˇrady 8086/8088. Dalˇs´ımi novinkami bylo napˇr´ıklad moˇznost adresace pamˇeti aˇz do velikosti 4 GB nebo str´ankov´an´ı, kter´e umoˇznilo virtu´ aln´ı spr´ avu pamˇeti. Intel 486 Novinkou bylo, ˇze proces dek´ odov´ an´ı a prov´adˇen´ı instrukc´ı byl rozdˇelen do 5 stupˇ nov´e pipeline. To zv´ yˇsilo moˇznosti paraleln´ıho zpracov´ an´ı u tohoto procesoru. Dalˇs´ım zlomem bylo zaveden´ı 8KB L1 Cache pamˇeti a integrace x87 FP jednotky. 1.1.2
P5 mikroarchitektura
Intel Pentium Nejvˇetˇs´ım vylepˇsen´ım bylo pˇrid´ an´ı druh´e pipeline pro vykon´av´an´ı instrukc´ı, kter´e znamenalo, ˇze procesor byl schopen vykonat dvˇe instrukce za jeden takt. T´ım se z tohoto procesoru st´av´a superskal´ arn´ı procesor. Byla tak´e zdvojena velikost L1 cache pamˇeti na 16KB, kter´a je rozdˇelena na 8KB pro instrukce a 8KB pro data. Datov´a cache pouˇz´ıv´a MESI protokol a je tak´e zmˇenˇen zp˚ usob z´ apisu do cache na Write Back. Byla tak´e pouˇzita predikce skoku. Intel Pentium MMX Jedn´a se o n´astupce Intel Pentium procesoru, kter´ y jako prvn´ı vyuˇz´ıv´a SIMD instrukˇcn´ı sadu Intel MMX. 1.1.3
P6 mikroarchitektura
Intel Pentium Pro Jedn´a se o tˇr´ıcestn´ y superskal´ arn´ı procesor, kter´ y je schopen v jednom taktu vykonat aˇz tˇri instrukce. U tohoto procesoru se jako u prvn´ıho objevilo mnoho pokroˇcil´ ych technologi´ı, kter´e se s u ´spˇechem pouˇz´ıvaj´ı dodnes. Jednalo se o technologie jako out-of-order prov´adˇen´ı instrukc´ı, predikce skoku ˇci spekulativn´ı prov´ adˇen´ı instrukc´ı. Byla tak´e zvˇetˇsena cache pamˇeˇt a to tak, ˇze byla zachov´ana p˚ uvodn´ı L1 a pˇrid´ ana L2 cache o velikosti 256KB. Intel Pentium II Opˇet byla rozˇs´ıˇrena cache. L1 cache byla zdvojena na 32KB a L2 cache mohla m´ıt velikost 512KB ˇci 1MB. Byly tak´e implementov´ any mnoh´e pokroˇcil´e funkce pro sn´ıˇzen´ı spotˇreby energie, kdyˇz procesor nen´ı vyt´ıˇzen. Intel Pentium II Xeon Jednalo se o procesory, kter´e skloubily vˇsechny v´ yhody pˇredeˇsl´ ych generac´ı, aˇt uˇz se jednalo o to, ˇze procesor mohl b´ yt ˇctyˇr nebo osmicestn´ y superskal´arn´ı procesor nebo L2 cache o velikosti 2MB. Intel Celeron ˇ o procesor kter´ Slo y byl zamˇeˇren na low-end ˇc´ast trhu. Tento procesor se poprv´e objevil jako odnoˇz procesorov´e ˇrady Pentium II. Jedn´a se tedy pouze o obchodn´ı oznaˇcen´ı pod kter´ ym se
´ UVOD ´ KAPITOLA 1. TEORETICKY
3
skr´ yvaj´ı r˚ uzn´e procesorov´e ˇrady. Pozdˇeji se objevil jako Pentium III, Pentium IV, Pentium M a Core 2 Duo. Intel Pentium III Zavedl takzvan´e SSE instrukce, kter´e jeˇstˇe v´ıce rozˇs´ıˇrily moˇznosti Intel MMX technologie. Jedn´a se o nov´e 128 bitov´e registry, kter´e byly schopn´e zpracov´avat SIMD operace na u ´rovni single-precision FP operac´ı. Intel Pentium III Xeon Opˇet skloubil vˇsechny v´ yhody procesor˚ u pˇredeˇsl´ ych generac´ı a nav´ıc byla pˇrid´ana podpora SSE instrukˇcn´ı sady. Byl to procesor urˇcen´ y pro high-end segment trhu, jelikoˇz mˇel oproti ostatn´ım procesor˚ um z Pentium III generace daleko vˇetˇs´ı cache a t´ım p´adem mˇel daleko vˇetˇs´ı multi-procesov´e schopnosti. 1.1.4
Netburst architektura
Generace procesor˚ u Intel Pentium IV Tato generace procesor˚ u pˇrinesla nˇekolik z´asadn´ıch inovac´ı v oblasti technologi´ı, kter´e se v procesorech dodnes pouˇz´ıvaj´ı. Jednalo se o technologie Intel NetBurst, SSE instrukce dalˇs´ı generace - SSE2, SSE3 a Hyper-Threading technologii. Z´asadn´ım zlomem u t´eto generace procesor˚ u bylo uveden´ı plnˇe 64 bitov´ ych procesor˚ u. Jako prvn´ı to byl procesor Intel Pentium IV Extreme Edition s podporou Hyper-Threadingu a d´ale procesory ˇrady Intel Pentium IV 6xx a 5xx. U procesor˚ u Intel Pentium IV 672 a 662 byla tak´e uvedena technologie Intel Virtualization. Dalˇs´ım mezn´ıkem bylo uveden´ı novodob´e generace Intel Xeon procesor˚ u, u nichˇz se poprv´e objevila Dual-Core technologie - tedy v´ıcej´adrovost procesoru. V´ıcej´adrovost se objevila tak´e u procesor˚ u z ˇrady Intel Pentium IV Extreme Edition. Procesory mˇely IHS (Integrated Heat Spreader), kter´ y zabraˇ noval n´ ahodn´emu poˇskozen´ı procesoru v d˚ usledku pˇrehˇr´at´ı. Tato procesorov´a rodina mˇela zvl´ aˇstn´ı cache mechanismus - Trace cache. Trace cache ukl´ad´a instrukce, pokud byly uˇz dek´ odov´ any nebo odloˇzeny. M´a moˇznost uchovat aˇz 12 tis´ıc mikroinstrukc´ı. Principem je myˇslenka, ˇze nˇekter´e instrukce jiˇz nebude potˇreba znovu dek´odovat. Takˇze pokud je uˇz procesor jednou dek´ odoval, tak budou uloˇzeny v Trace cache a odtud si je m˚ uˇze procesor znovu vyvolat bez dalˇs´ıho dek´ odov´ an´ı. Do t´eto procesorov´e rodiny patˇr´ı tyto j´adra: Willamette - listopad 2000 • jedn´ a se o prvn´ı procesor z ˇrady Intel Pentium IV • procesor byl vyroben 180nm v´ yrobn´ım procesem • procesor z poˇc´ atku vyˇzadoval velmi drah´e RDRAM pamˇeˇtov´e moduly, pozdˇeji od toho Intel upustil Northwood - leden 2002 • L2 cache zv´ yˇsena na 512KB oproti 256KB u j´adra Willamette • vyroben 130nm v´ yrobn´ım procesem • procesor podporoval Hyper-Threading technologii • v pr˚ ubˇehu ˇzivota tohoto j´ adra byla uvedena nov´a 800MHz sbˇernice (FSB)
´ UVOD ´ KAPITOLA 1. TEORETICKY
4 Gallatin (Extreme Edition) - ˇ r´ıjen 2003 • pˇrid´ana 2MB L3 cache • zv´ yˇsena frekvence FSB na 1066MHz Prescott - u ´ nor 2004 • 90nm v´ yrobn´ı proces
• jednalo se o velkou zmˇenu Pentium IV architektury • 31 stupˇ nov´ a pipeline • vyuˇzity SSE3 instrukce • procesor produkoval velk´e ztr´ atov´e teplo, proto Intel tento model brzy opustil • existovaly dvˇe edice tohoto procesoru: 1. niˇzˇs´ı ˇrada A s 533 MHz FSB a vypnut´ ym Hyper-Threadingem 2. vyˇsˇs´ı ˇrada E s 800 MHz FSB a zapnut´ ym Hyper-Threadingem • byla uvedena XD Bit technologie, kter´a umoˇzn ˇovala pˇredejit´ı spuˇstˇen´ı podezˇrel´eho k´odu • pozdˇejˇs´ı ˇrady procesoru podporovaly x86-64 instrukˇcn´ı sadu Prescott 2M (Extr´ eme Edition) - prvn´ı ˇ ctvrtlet´ı roku 2005 • podporoval Intel 64 technologii, XD Bit, EIST (Enhanced Intel SpeedStep technologie), Hyper-Threading • novˇe podpora Tm2 technologie - zaruˇcuje sn´ıˇzen´ı teploty procesoru sn´ıˇzen´ım multiplik´atoru • L2 cache o velikosti 2MB • pozdˇejˇs´ı ˇrady procesoru podporuj´ı Intel Virtualization technologii Cedar Mill - poˇ c´ atek roku 2006 • 65nm v´ yrobn´ı proces • 31 stupˇ nov´ a pipeline • 800 MHz FSB, podpora Intel 64, Hyper-Threading a Intel Virtualization technologi´ı • 2MB L2 cache Mobile Pentium 4 M • jedn´a se o Pentium IV procesor zamˇeˇren´ y na mobiln´ı zaˇr´ızen´ı • je zaloˇzen na j´ adru Northwood • podporoval Intel SpeedStep a Deeper Slep technologie, v nˇekter´ ych modelech tak´e HyperThreading technologie
´ UVOD ´ KAPITOLA 1. TEORETICKY
5
Pentium D procesory Je to pokraˇcov´ an´ı Pentium IV architektury s podporou dvouj´adrov´eho ˇreˇsen´ı. Procesory obsahuj´ı dvˇe samostatn´e j´ adra - dva samostatn´e ˇcipy. Byly uvedeny dvˇe verze tˇechto procesor˚ u: Smithfield • jednalo se o prvn´ı dvouj´ adrov´ y procesor na trhu • vych´ az´ı z j´ adra Prescott • podpora Hyper-Threading, Intel 64 a XD-Bit technologi´ı • 533 MHz FSB sbˇernice • vyroben 90 nm v´ yrobn´ım procesem • 1MB velk´ a L2 cache pro kaˇzd´e j´adro Presler • vyroben 65nm v´ yrobn´ım procesem • vych´ az´ı z j´ adra Cedar Mill • 800 MHz FSB sbˇernice • podpora Virtualization technologie, Intel 64, XD-Bit a EIST (Enhanced Intel SpeedStep technologie) technologi´ı • L2 cache o velikosti 2MB pro kaˇzd´e j´adro D´ale existovaly Smithfield XE a Presler XE procesory, jde o procesory z ˇrady Extreme Edition. Generace procesor˚ u Intel Pentium M Jde o generaci procesor˚ u, kter´ a se nejv´ıce uplatnila v mobiln´ıch zaˇr´ızen´ıch. Byla designov´ ana tak, aby mˇela co nejmenˇs´ı n´ aroky na spotˇrebu, avˇsak z´aroveˇ n pod´avala dostateˇcn´ y v´ ykon. Jde o velmi obl´ıbenou generaci procesor˚ u, kter´a je pouˇz´ıv´ana dodnes. M´a nˇekolik z´akladn´ıch vylepˇsen´ı: L1 cache o velikosti 64KB a L2 cache o velikosti aˇz 2 MB, pokroˇcilou predikci skoku, podporu MMX, SSE a SSE2 technologi´ı a implementaci Intel SpeedStep technologie. Generace procesor˚ u Intel Pentium Extreme Edition Tato generace procesor˚ u se vyznaˇcuje Dual-Core technologi´ı, kter´a zajiˇsˇtuje hardwarovou podporu multi-vl´ aknov´ ych operac´ı. Jsou zaloˇzeny na Intel NetBurst technologii s podporou SSE, SSE2 a SSE3, Intel 64 architektuˇre a Hyper-Threading technologii. 1.1.5
Core architektura
Generace procesor˚ u Intelo Core Duo a Intel Core Solo Tyto procesory vych´ azej´ı z procesor˚ u generace Intel Pentium M, avˇsak maj´ı implementovan´ ych nˇekolik nov´ ych technologi´ı. Napˇr´ıklad Intel SmartCache, kter´a slouˇz´ı k efektivn´ımu sd´ılen´ı dat mezi dvˇema procesorov´ ymi j´ adry, Intel Dynamic Power Coordination a Enhanced Intel Deeper Sleep k redukci spotˇreby tˇechto procesor˚ u. D´ale podporuj´ı Intel Advanced Thermal Manager, kter´ y slouˇz´ı k dynamick´e spr´ avˇe teplotn´ıch ˇcidel.
´ UVOD ´ KAPITOLA 1. TEORETICKY
6
Generace procesor˚ u Intel Xeon s´ erie 5100 a 5300, Intel Core 2 Jde o procesory z ˇrad Intel Xeon 3000, 3200, 5100, 5300, 7300, Intel Pentium Dual-Core, Intel Core 2 Extreme, Intel Core 2 Quad a Intel Core 2 Duo. Tyto procesory podporuji Intel 64 architekturu a jsou zaloˇzeny na Intel Core technologii, vyuˇz´ıvaj´ıc´ı 65nm v´ yrobn´ı proces. Z´akladn´ımi inovacemi jsou napˇr´ıklad Intel Wide Dynamic Execution slouˇz´ıc´ı ke zv´ yˇsen´ı v´ ykonu, Intel Inteligent Power Cabability ke sn´ıˇzeni spotˇreby procesoru, Intel Advanced SmartCache, kter´a je vylepˇsen´ım technologie Intel SmartChace z minul´e generace procesor˚ u, Intel Smart Memory Access slouˇz´ıc´ı ke zv´ yˇsen´ı datov´e propustnosti a Intel Advanced Digital Media Boost, kter´a zvyˇsuje v´ ykon za pouˇzit´ı r˚ uzn´ ych generac´ı SSE instrukc´ı. Generace procesor˚ u Intel Xeon s´ erie 5200, 5400, Intel Core 2 Jsou to procesory z ˇrad Intel Xeon s´erie 5200, 5400, Inte Core 2 Quad 9000 a Intel Core 2 Duo E8000. Tyto procesory tak´e podporuj´ı Intel 64 architekturu a jsou zaloˇzeny na Enhanced Intel Core technologii, vyuˇz´ıvaj´ıc´ı 45nm v´ yrobn´ı proces. Novinkou t´eto generace je Quad-Core technologie, zastoupen´ a v procesorech Intel Xeon 5400 a Intel Core 2 Quad 9000. QuadCore technologie vznikla tak, ˇze byla zkombinov´ana dvˇe dual-core j´adra na jednom ˇcipu se sjednocenou cache pamˇet´ı. Dalˇs´ımi z´ asadn´ımi inovacemi jsou vylepˇsen´ı Intel Wide Dynamic Execution a Intel Advanced Smart Cache (d´ıky 50 a v´ıce procentn´ımu zvˇetˇsen´ı L2 cache a asociativity). Dalˇs´ıho vylepˇsen´ı se tak´e doˇckala Intel Advanced Digital Media Boost a nov´e SSE4 instrukce. 1.1.6
Nehalem architektura
Generace procesor˚ u Intel Core i7 Nejnovˇejˇs´ı generacE procesor˚ u, kter´ a je zaloˇzena na nov´e mikroarchitektuˇre Nehalem. K v´ yrobˇe tˇechto procesor˚ u se vyuˇz´ıv´ a 45nm v´ yrobn´ıho procesu. Procesory podporuj´ı Intel 64 architekturu a tak´e nˇekolik nov´ ych technologi´ı, kter´e jsou novinkou t´eto platformy. Jedn´a se o Intel Turbo Boost technologii nebo Intel Hyperthreading technologii, kter´a ve spojen´ı se ˇctyˇrj´adrov´ ym procesorem umoˇzn ˇuje aˇz osm separ´ atn´ıch vl´ aken. D´ale maj´ı tyto procesory samostatnou jednotku pro ˇr´ızen´ı spotˇreby, kter´ a je schopna sn´ıˇzit aktivn´ı a klidovou spoˇrebu. Velkou novinkou t´eto generace procesor˚ u je integrovan´ y pamˇeˇtov´ y ˇradiˇc pˇr´ımo v procesoru s podporou DDR3 pamˇet´ı ´ a 8MB velk´a Intel SmartCache. Uplnˇ e novou technologi´ı je tak´e Intel Quickpath interconnect (QPI) poskytujic´ı point-to-point spojen´ı s ˇcipsetem. Posledn´ımi dvˇemi novinkami je podpora instrukˇcn´ıch sad SSE 4.1, SSE 4.2 a tak´e Intel Virtualization technologie druh´e generace. 1.1.7
Atom architektura
Generace procesor˚ u Intel Atom Jde o u ´plnˇe novou mikroarchitekturu procesor˚ u viz. [9], kter´a je postavena na 45nm v´ yrobn´ım procesu a je prim´ arnˇe realizov´ ana jako architektura s velmi n´ızkou spotˇrebou. Mikroarchitektura je zaloˇzena na dvou pipelin´ ach, kter´e funguj´ı na principu sekvenˇcn´ıho zpracov´an´ı instrukc´ı a jsou navrhnuty s ohledem na minimalizaci spotˇreby a zv´ yˇsen´ı v´ ydrˇze baterie pro notebooky a podobn´a zaˇr´ızen´ı. Rodina mikroprocesor˚ u Atom podporuje nˇekolik z´akladn´ıch technologi´ı, napˇr´ıklad Enhanced Intel SpeedStep technologii a Hyper-Threading technologii. D´ale potom Deep Power Down technologii s dynamick´ ym urˇcov´an´ım velikosti cache pamˇeti a nˇekter´e SIMD instrukce - aˇz po SSSE3 sadu instrukc´ı. Tato rodina procesor˚ u podporuje tak´e Intel Virtualization technologii a Intel 64 architekturu (procesory ze s´erie Z5xx ji nepodporuj´ı).
´ UVOD ´ KAPITOLA 1. TEORETICKY
1.2
7
Technologie procesor˚ u Intel
V tomto kr´ atk´em pˇrehledu jednotliv´ ych generac´ı procesor˚ u bylo zm´ınˇeno nˇekolik z´asadn´ıch technologi´ı procesor˚ u Intel viz. [14], kter´e jsou natolik d˚ uleˇzit´e, ˇze je zde zm´ın´ım jeˇstˇe jednou a podrobnˇeji proberu jejich vlastnosti. Jedn´a se o tyto technologie: • P6 Family mikroarchitektura • Intel NetBurst mikroarchitektura • Intel Core mikroarchitektura • Intel Atom mikroarchitektura • Intel Nehalem mikroarchitektura • SIMD instrukce • Hyper-threading technologie • Multi-Core technologie • Intel 64 architektura • Intel Virtualization technologie 1.2.1
P6 Family mikroarchitektura
Pod t´ımto n´ azvem se skr´ yv´ a architektura pro procesory Intel Pentium Pro, Intel Pentium II, Intel Pentium II Xeon, Intel Pentium Celeron, Intel Pentium III a Intel Pentium III Xeon. Z´akladn´ı vlastnosti: • jedn´ a se o tˇr´ıcestnou superskal´ arn´ı pipelinovou architekturu, kter´a je schopn´a zpracov´ avat aˇz tˇri instrukce v jednom cyklu • pouˇz´ıv´ a dvan´ actistupˇ novou pipeline se schopnost´ı prov´adˇet instrukce mimo poˇrad´ı • m´a dva stupnˇe cache pamˇeti - L1 cache 8KB pro instrukce a 8KB pro data, L2 cache o velikosti 256, 512 nebo 1024 KB, kter´a je s procesorem spojena 64 bitovou sbˇernic´ı • schopnost prov´ adˇet instrukce mimo poˇrad´ı se zde pouˇz´ıv´a v tzv. dynamick´em prov´adˇen´ı, kter´e stoj´ı na tˇrech z´ akladn´ıch postupech: 1. Deep Branch Prediction - umoˇzn ˇuje procesoru dek´odovat instrukce za skokem, aby udrˇzel pipeline plnou 2. Dynamick´ a data-flow anal´ yza - umoˇzn ˇuje procesoru anal´ yzu toku dat a d´ıky tomu m˚ uˇze rozhodovat o prov´ adˇen´ı instrukc´ı mimo poˇrad´ı 3. Spekulativn´ı prov´ adˇen´ı - schopnost procesoru vykon´avat instrukce, kter´e se nach´ azej´ı za podm´ınkov´ ym skokem, kter´ y zat´ım nebyl rozhodnut, a v pˇr´ıpadˇe ˇspatn´eho v´ ysledku skoku tyto instrukce stornovat • P6 procesor mikroarchitektura
´ UVOD ´ KAPITOLA 1. TEORETICKY
8
Obr´ azek 1.1: P6 mikroarchitektura
1.2.2
Intel Netburst architektura
NetBurst architektura uv´ ad´ı mnoho novinek a z´asadnˇe vylepˇsuje procesory, kter´e tuto architekturu pouˇz´ıvaj´ı. Z´akladn´ı vlastnosti: • Rapid Execution Engine - umoˇzn ˇuje ALU jednotk´am bˇeˇzet 2x rychleji neˇz procesor, z´akladn´ı celoˇc´ıseln´e operace m˚ uˇzou b´ yt odbaveny za 1/2 doby trv´ani cyklu procesoru • Hyper-Pipelined technologie - umoˇzn ˇuje vysokou frekvenci procesor˚ u • vylepˇsen´e dynamick´e prov´ adˇen´ı - aˇz 126 instrukc´ı m˚ uˇze b´ yt v pipeline, pipeline m´a aˇz 48 naˇc´ıtac´ıch a 24 ukl´ adac´ıch jednotek, vylepˇsen´a predikce skoku • nov´ y syst´em cache pamˇet´ı • Intel NetBurst technologie
´ UVOD ´ KAPITOLA 1. TEORETICKY
9
Obr´ azek 1.2: Netburst mikroarchitektura
• Pipeline se skl´ ad´ a ze 3 ˇc´ ast´ı a to: 1. Front-End pipeline 2. Out-Of-Order Execution Core 3. Retirement Unit • Front-End pipeline - jej´ım u ´kolem je z´asobovat Out-Of-Order Execution Core instrukcemi v programov´em poˇrad´ı • Out-Of-Order Execution Core - z´akladn´ım u ´kolem je zpracov´av´an´ı instrukc´ı mimo poˇrad´ı, coˇz znamen´ a, ˇze pokud se nˇejak´a instrukce zpozd´ı, tak jin´a instrukce m˚ uˇze b´ yt mezit´ım vykon´ av´ ana. K tomuto u ´ˇcelu Out-Of-order Execution Core pouˇz´ıv´a r˚ uzn´e buffery. • Retirement Unit - dost´ av´ a jiˇz zpracovan´e instrukce od Out-Of-Order Execution Core a star´ a se o zapisov´ an´ı v´ ysledk˚ u tˇechto instrukc´ı
´ UVOD ´ KAPITOLA 1. TEORETICKY
10 1.2.3
Intel Core architektura
Z´akladn´ı vlastnosti: • Intel Wide Dynamic execution - umoˇzn ˇuje kaˇzd´emu procesoru zpracovat aˇz 4 instrukce za jeden takt • ˇctrn´actistupˇ nov´ a pipeline • 3 ALU jednotky • Intel Advanced Smart Cache - zajiˇsˇtuje vyˇsˇs´ı pˇrenos dat z L2 cache pamˇeti do procesoru • velk´a L2 cache aˇz o velikosti 4MB, aˇz ˇsestn´actistupˇ nov´a asociativita • 256 bitov´ a intern´ı datov´ a cesta pro zv´ yˇsen´ı pˇrenosu z L2 do L1 cache • Intel Smart Memory Access - redukuje cache-miss pˇri zpracov´av´an´ı mimo poˇrad´ı, zvyˇsuje efektivnost pˇri spekulativn´ım prov´ adˇen´ı instrukc´ı a to tak, ˇze optimalizuje vyuˇzit´ı datov´eho toku z procesoru do pamˇeti (sniˇzuje latenci pˇri pˇr´ıstupu do pamˇeti). K t´eto optimalizaci procesor vyuˇz´ıv´ a Memory disambiguation technologii, kter´a vylepˇsuje outof-order zpracov´ an´ı instrukc´ı t´ım, ˇze l´epe odhaduje poˇrad´ı zpracov´an´ı instrukc´ı • Intel Advanced Media Digital Boost - vylepˇsuje vˇetˇsinu 128 bitov´ ych SIMD instrukc´ı • Intel Core 2 Duo, Intel Core 2 Extrem a Intel Xeon s´erie 5100 obsahuj´ı dva procesory zaloˇzen´e na Intel Core architektuˇre
Obr´ azek 1.3: Core mikroarchitektura
´ UVOD ´ KAPITOLA 1. TEORETICKY 1.2.4
11
Architektura Intel Atom
Jedn´a se o procesorovou ˇradu, kter´a je urˇcena pro ultra-mobiln´ı PC, smart-phony a dalˇs´ı zaˇr´ızen´ı, kter´ a maj´ı velmi mal´e n´aroky na spotˇrebu. Samotn´a architektura m´a nˇekolik z´akladn´ıch rys˚ u: • vylepˇsen´e prov´ adˇen´ı mikroinstrukc´ı - In-Order zpracov´ an´ı instrukc´ı (zpracov´av´an´ı instrukc´ı v poˇrad´ı). Tuto technologii Intel pouˇz´ıv´ a znovu po dlouh´e dobˇe. V principu procesor dost´av´a instrukce jednu za druhou a vkl´ ad´ a je do pipeline v poˇrad´ı, v jak´em je dost´av´a. V´ yhodou je to, ˇze by poˇcet ztr´ at mˇel b´ yt omezen. Procesory z rodiny Atom pouˇz´ıvaj´ı 16 stupˇ novou pipeline, kter´ a m˚ uˇze b´ yt nˇekdy i nev´ yhodou, jelikoˇz pro in-order zpracov´av´an´ı b´ yvaj´ı obvykl´e kr´ atk´e pipeliny.
Obr´ azek 1.4: Intel Atom architektura - du´ aln´ı pipeliny ke zpracov´an´ı aˇz dvou instrukc´ı v jednom cyklu - vylepˇsen´ y stack pointer k zv´ yˇsen´ı efektivity prov´adˇen´ı vstup˚ u/v´ ystup˚ u z funkc´ı • Intel SmartCache - L2 o velikosti 512KB, osmistupˇ nov´a asociativita - optimalizov´ ana pro jednovl´aknov´e i v´ıcevl´aknov´e prostˇred´ı - 256 bitov´ a datov´ a cesta mezi L2 a L1 cache • Intel Digital Media Boost - jednocyklov´ y pr˚ uchod pro vˇetˇsinu 128-bitov´ ych SIMD instrukc´ı - aˇz ˇsest FP operac´ı za jeden cyklus - aˇz dvˇe 128 bitov´e SIMD instrukce za jeden cyklus
´ UVOD ´ KAPITOLA 1. TEORETICKY
12
- Safe Instruction Recognition (SIR) - umoˇzn ˇuje dlouhotrvaj´ıc´ım floating-point operac´ım vyuˇz´ıt out-of-order retire • Intel HyperThreading - jedn´ a se o stejnou technologii, jak´a uˇz byla pouˇzita u procesor˚ u z rodiny Intel Pentium IV, avˇsak u procesor˚ u Atom je tato technologie velmi podpoˇrena dlouhou pipeline Procesory t´eto generace maj´ı implementov´anu instrukˇcn´ı sadu x86 (IA-32 i s 64 bitov´ ym rozˇs´ıˇren´ım). Procesory obsahuj´ı dvˇe ALU jednotky a dvˇe FPU jednotky. Prvn´ı ALU jednotka se star´a o posuvy a druh´ a o skoky. Jak´ekoliv n´asoben´ı ˇci sˇc´ıt´an´ı se automaticky pos´ıl´a do FPU jednotek, i kdyˇz se jedn´ a o operaci s integer ˇc´ısly. Prvn´ı FPU jednotka se star´a o sˇc´ıt´an´ı, druh´a o SIMD instrukce a n´ asoben´ı nebo dˇelen´ı. Procesory jsou celkovˇe optimalizov´any pro jednoduch´e instrukce, kter´e zvl´ adaj´ı velmi rychle.
Obr´ azek 1.5: Intel Atom pipeline
1.2.5
Architektura Intel Nehalem
Nehalem je k´odov´e oznaˇcen´ı pro nejnovˇejˇs´ı generaci procesor˚ u od spoleˇcnosti Intel. Jedn´a se o u ´plnˇe novou architekturu, kter´ a je n´ astupcem Core architektury. P˚ uvodnˇe se mˇelo jednat o posledn´ı st´adium NetBurst technologie, ale jelikoˇz Intel od t´eto technologie upustil, tak se jedn´a o u ´plnˇe nov´ y projekt. Procesory kter´e vyuˇz´ıvaj´ı Nehalem architekturu jsou prod´av´any pod n´azvem Intel Core i7. Z´akladn´ı rysy t´eto architektury: • procesory t´eto architektury m˚ uˇzou existovat v 2, 4 a 8 j´adrov´ ych proveden´ıch • integrovan´ y pamˇeˇtov´ y ˇradiˇc s podporou DDR3 SDRAM, kter´ y m´a 3 pamˇeˇtov´e kan´aly • procesory se vyr´ abˇej´ı 45nm technologi´ı • je pouˇzita nov´ a technologie Intel QuickPath Interconnect, kter´a nahrazuje klasick´ y front side bus (FSB) • znova se pouˇz´ıv´ a Intel HyperThreading technologie (Intel ji nepouˇzil od Pentium IV generace procesor˚ u)
´ UVOD ´ KAPITOLA 1. TEORETICKY
13
• vˇsechna j´ adra jsou tzv. single die (budou souˇc´ast´ı jednoho ˇcipu) • L1 cache se skl´ ad´ a z 32KB pro instrukce a 32KB pro data na kaˇzd´e j´adro • 256KB L2 cache na kaˇzd´e j´ adro • 8MB L3 cache, kter´ a je sd´ılena vˇsemi j´adry • vylepˇsena predikce skok˚ u pomoc´ı 2nd level branch prediction a tak´e vylepˇsen´ y Transaction Lookaside Buffer (2nd level TLB) • intergrovan´ y mikrokontroler pro spr´avu spotˇreby • real-time senzory pro sledov´ an´ı teploty a spotˇreby procesoru
Obr´ azek 1.6: architektura procesor˚ u Intel Nehalem
´ UVOD ´ KAPITOLA 1. TEORETICKY
14 Intel QuickPath Interconnect architektura
Jde o platformu, kter´ a je urˇcena k propojen´ı mezi mikroprocesorem a extern´ı pamˇet´ı a tak´e mezi mikroprocesorem a V/V rozboˇcovaˇcem. Z´akladn´ım vylepˇsen´ım t´eto technologie je implementace sd´ılen´e ˇsk´ alovateln´e pamˇeti. Nam´ısto pouˇzit´ı sd´ılen´e pamˇeti, kter´a je pˇripojena ke vˇsem j´adr˚ um za pomoci FSB (Front Side Bus) a pamˇeˇtov´eho kontroleru, m´a svou vlastn´ı pˇriˇrazenou pamˇeˇt, ke kter´e pˇristupuje pomoc´ı sd´ılen´eho pamˇeˇtov´eho ˇradiˇce. V pˇr´ıpadˇe, ˇze j´adro potˇrebuje pˇristoupit k pamˇeti, kter´ a je urˇcena jin´emu j´adru, tak to m˚ uˇze udˇelat pr´avˇe pomoc´ı Intel QuickPath Interconnect, kter´ a spojuje vˇsechna j´adra. Z´akladem t´eto technologie je to, ˇze pouˇz´ıv´a dvoubodov´ y spoj, nam´ısto klasick´e sbˇernice, kde j´adra mus´ı ˇreˇsit pˇristup ke sd´ılen´ ym prostˇredk˚ um. Pˇredpokl´ adan´ y v´ ykon se pohybuje okolo 4.8 aˇz 6.4 GB pˇrenesen´ ych za sekundu v jednom smˇeru. Spoj m˚ uˇze b´ yt 5, 10 nebo 20 bit˚ u ˇsirok´ y v kaˇzd´em smˇeru, coˇz znamen´a 12 aˇz 16 GB/s v jednom smˇeru, ˇci 24 aˇz 32 GB/s pro spoj. Z´akladn´ı implementace t´eto technologie v procesorov´e rodinˇe Nehalem pouˇz´ıv´ a spoj o 20 bitov´e ˇs´ıˇrce s pˇrenosem 25,6 GB/s. 2nd level branch prediction Principem 2nd level predikce skok˚ u u procesor˚ u Nehalem je to, ˇze tato predikce funguje souˇcasnˇe s klasickou predikc´ı. V´ yhodou 2nd level predikce je to, ˇze m´a daleko vˇetˇs´ı tabulku s histori´ı skok˚ u a tak dok´ aˇze odhadovat skoky s lepˇs´ım v´ ysledkem, nev´ yhodou je zase velk´e zpomalen´ı odhadu. 2nd level TLB Opˇet zde pracuj´ı obˇe dvˇe u ´rovnˇe TLB spoleˇcnˇe, avˇsak pokud nen´ı namapov´ana adresa v z´akladn´ım TLB, tak se procesor pod´ıv´ a jeˇstˇe do novˇe pˇridan´e 2nd level TLB nam´ısto do tabulky str´anek a t´ım m˚ uˇze uˇsetˇrit ˇcas. 1.2.6
SIMD instrukce
Jedn´a se o takzvan´e single-instruction multiple-data instrukce, kter´e byly u procesor˚ u zavedeny se vznikem Intel MMX technologie a pot´e d´ale rozˇsiˇrov´any pomoc´ı SSE, SSE2, SSE3, SSSE3 a SSE4 instrukc´ı. • MMX instrukce - Intel Pentium II • SSE instrukce - Intel Pentium III • SSE2 instrukce - Intel Pentium IV, Intel Xeon • SSE3 instrukce - Intel Pentium IV s Hyper-Threading technologi´ı • SSSE3 instrukce - Intel Xeon s´erie 5100, Intel Core 2 Duo • SSE4 instrukce - 54 instrukc´ı - 47 instrukc´ı je SSE4.1 - Intel Xeon s´erie 5400, Intel Core 2 Extreme QX9650 - 7 instrukc´ı je SSE4.2
´ UVOD ´ KAPITOLA 1. TEORETICKY
15
Obr´azek 1.7: SIMD instrukce
1.2.6.1
SSE4 instrukˇ cn´ı sada
• poprv´e uvedena u Intel Core architektury • nejedn´ a se o sadu instrukc´ı na podporu multim´edi´ı • tyto instrukce definuj´ı XMM0 jako implicitn´ı tˇret´ı operand • postr´ adaj´ı podporu pro 64 bitov´e MMX registry, SIMD integerov´e operace mohou b´ yt prov´ adˇeny pouze v 128 bitov´ ych XMM registrech • SSE4a - dvˇe nov´e instrukce pˇridan´e spoleˇcnost´ı Advanced Media Device (AMD)
´ UVOD ´ KAPITOLA 1. TEORETICKY
16 1.2.7
Hyper-Threading technologie
Tato technologie byla zavedena u 32 bitov´ ych procesor˚ u, aby zv´ yˇsila jejich v´ ykonnost pˇri pouˇz´ıv´an´ı multi-vl´ aknov´eho operaˇcn´ıho syst´emu nebo jedno-vl´aknov´e aplikace v multi-taskingov´em prostˇred´ı. Z´akladem t´eto technologie je umoˇznit procesoru zpracov´avat dva a nebo v´ıce separ´atn´ıch k´od˚ u (vl´ aken) pomoc´ı sd´ılen´ ych vykon´avac´ıch prostˇredk˚ u. 32 bitov´e procesory, kter´e Hyper-Threading technologii podporuj´ı, jsou ve skuteˇcnosti tvoˇreny dvˇema nebo v´ıce logick´ ymi procesory. Kaˇzd´ y z tˇechto logick´ ych procesor˚ u m´a svoje vlastn´ı 32 bitov´e registry. Srovn´an´ı procesoru vyuˇz´ıvaj´ıc´ıho Hyper-Threading technologie s opravdov´ ym dvouj´adrov´ ym procesorem:
Obr´ azek 1.8: Hyper-Threading
1.2.8
Multi-Core technologie
Tato technologie je dalˇs´ı moˇznost´ı jak zpracov´avat multi-vl´aknov´e operace v rodinˇe 32 bitov´ ych procesor˚ u. Je zaloˇzena na v´ yskytu dvou nebo v´ıce fyzick´ ych procesorov´ ych jader. Vyskytuje se u nˇekolika procesor˚ u z rodiny Intel v r˚ uzn´ ych obmˇen´ach: • prvn´ım procesorem s touto technologi´ı je Intel Pentium IV Extreme Edition - jsou zde dvˇe procesorov´ a j´ adra s podporou technologie Hyper-Threading, coˇz d´av´a dohromady 4 logick´e procesory • Dual-core Intel Xeon • Intel Pentium D - dvˇe procesorov´ a j´adra bez pˇr´ıtomnosti Hyper-Threading technologie, tedy jen dva logick´e procesory
´ UVOD ´ KAPITOLA 1. TEORETICKY
17
• Intel Core 2 Duo, Intel Xeon s´erie 3000, 5100 a Intel Core Duo - obsahuj´ı dvˇe procesorov´ a j´adra, kter´ a sd´ılej´ı L2 cache a kaˇzd´ y m´a svou vlastn´ı L1 cache (nen´ı uk´az´ana na obr´azku)
Obr´ azek 1.9: MultiCore technologie - 2 j´adra
• Intel Xeon s´erie 7300, 5300, 3200, Intel Core 2 Extreme Quad-Core a Intel Core 2 Quad - obsahuj´ı ˇctyˇri procesorov´e j´ adra, avˇsak fyzicky jsou to dvˇe dual-core j´adra na jednom ˇcipu, kde kaˇzd´e dual-core j´ adro m´a svou vlastn´ı L2 cache (2x L2 cache v procesoru) a kaˇzd´e procesorov´e j´ adro m´ a svou samostatnou L1 cache (4x L1 cache v procesoru)
Obr´ azek 1.10: MultiCore technologie - 4 j´adra
´ UVOD ´ KAPITOLA 1. TEORETICKY
18 • Intel Core i7 - 4 procesorov´ a j´ adra
Obr´ azek 1.11: MultiCore technologie - 4 j´adra Intel Core i7
1.2.9
Intel 64 architektura
Z´akladn´ım rysem t´eto architektury je, ˇze zvyˇsuje adresn´ı prostor pro software na 64 bit˚ u a podporuje fyzick´ y adresn´ı prostor do 40 bit˚ u. M˚ uˇze pracovat ve dvou z´akladn´ıch m´odech: 1. kompatibiln´ı m´ od - dovoluje 64 bitov´emu operaˇcn´ımu syst´emu spouˇstˇet 32 bitov´e aplikace bez jak´ehokoliv z´ asahu do nich 2. 64 bitov´ y m´ od - dovoluje syst´emu spouˇstˇet aplikace, kter´e jsou naps´any pro 64 bitov´ y pˇr´ıstup k adresn´ımu prostoru Dalˇs´ı znaky 64 bitov´eho m´ odu: • 64 bitov´a adresace • 8 univerz´ aln´ıch registr˚ u nav´ıc • 8 registr˚ u nav´ıc pro SIMD instrukce 1.2.10
Intel virtualization technologie
Tato technologie pro 64 bitov´e i 32 bitov´e procesory umoˇzn ˇuje tzv. virtualizaci, coˇz je moˇznost fungovat jako v´ıce virtu´ aln´ıch syst´em˚ u, kde kaˇzd´ y virtu´aln´ı syst´em m˚ uˇze m´ıt sv˚ uj vlastn´ı operaˇcn´ı syst´em a aplikace pro nˇej.
´ UVOD ´ KAPITOLA 1. TEORETICKY 1.2.11
19
Intel IA64 technologie
Tuto technologii vyuˇz´ıv´ a procesorov´a ˇrada Intel Itanium. Jde o 64 bitov´e procesory, kter´e jsou urˇceny pro vysoce v´ ykonn´e poˇc´ıtaˇcov´e syst´emy. Jedn´a se o u ´plnˇe jinou architekturu neˇz maj´ı ostatn´ı procesory od firmy Intel. Procesory existuj´ı ve dvou generac´ıch a to Itanium a Itanium 2. Architektura je zaloˇzena silnˇe na paralelismu na u ´rovn´ı instrukc´ı (ILP), kdy pˇrekladaˇc rozhoduje o tom, kter´e instrukce se budou vykon´avat paralelnˇe. Tohle dovoluje procesoru zpracov´avat aˇz 6 instrukc´ı v jednom hodinov´em taktu. Z´akladn´ı fakta o t´eto architektuˇre jsou: • 128 integer registr˚ u, 128 FP registr˚ u, 64 jednobitov´ ych predik´atov´ ych registr˚ u, 8 skokov´ ych registr˚ u • FP registry jsou 82 bit˚ u dlouh´e • kaˇzd´e 128 bitov´e slovo obsahuje 3 instrukce, fetch mechanismus m˚ uˇze naˇc´ıst dvˇe instrukˇcn´ı slova za jeden takt z L1 cache do pipeline • procesor m´ a 30 funkˇcn´ıch vykon´avac´ıch jednotek v 11 skupin´ach, kaˇzd´a jednotka m˚ uˇze prov´ adˇet urˇcitou podmnoˇzinu instrukˇcn´ı sady • tyto jednotky jsou: - 6 obecn´ ych ALU jednotek, 2 integer jednotky, 1 shift jednotka - 4 data cache jednotky - 6 multimedi´ aln´ıch jednotek, 2 paraleln´ı shift jednotky, 1 paraleln´ı n´asobiˇcka - 4 FP n´ asobiˇcky - 3 skokov´e jednotky • pˇrekladaˇc tedy m˚ uˇze skl´ adat instrukce do skupiny po ˇsesti a pak je vykon´avat najednou • ˇrada Itanium 2 m´ a 32KB velkou L1 cache (16KB pro data, 16KB pro instrukce), L2 cache o velikosti 256KB • L3 cache o r˚ uzn´e velikosti 1,5 MB aˇz 24 MB • L2 cache obsahuje dodateˇcnou logiku pro zvl´adnut´ı operac´ı se semafory bez pˇreruˇsen´ı pr´ace ALU • pozdˇejˇs´ı generace procesor˚ u mˇely podporu IA-32 EL technologie, kter´a zvyˇsuje v´ ykonnost 64 bitov´eho Itanium procesoru v 32 bitov´ ych aplikac´ıch • v ˇcervenci 2006 s vyd´ an´ım revize j´adra Montecito byla pˇrid´ana podpora Hyper-Threading technologie a pozdˇeji tak´e Intel Virtualization technologie
20
´ UVOD ´ KAPITOLA 1. TEORETICKY
Obr´ azek 1.12: Itanium architektura
´ UVOD ´ KAPITOLA 1. TEORETICKY 1.2.12 1.2.12.1
Pˇ rehled z´ akladn´ıch vlastnost´ı procesor˚ u Intel 32 bitov´ e procesory
Obr´ azek 1.13: 32 bitov´e procesory
21
´ UVOD ´ KAPITOLA 1. TEORETICKY
22 1.2.12.2
64 bitov´ e procesory
Obr´ azek 1.14: 64 bitov´e procesory ˇc´ast prvn´ı
´ UVOD ´ KAPITOLA 1. TEORETICKY
Obr´ azek 1.15: 64 bitov´e procesory ˇc´ast druh´a
23
´ UVOD ´ KAPITOLA 1. TEORETICKY
24 1.2.12.3
Itanium procesorov´ aˇ rada
Obr´ azek 1.16: Itanium procesorov´a ˇrada
´ UVOD ´ KAPITOLA 1. TEORETICKY
1.3
25
Advanced Micro Devices (AMD)
Prvn´ı procesory AMD byly ˇrady 286, 386 a 486, kter´e spoleˇcnost AMD vyr´abˇela podle designu spoleˇcnosti Intel. Prvn´ım samostatn´ ym procesorem AMD byla ˇrada procesor˚ u K5.
1.3.1
AMD K5 architektura
AMD K5 procesory K5 procesory byly postaven´e na vlastn´ı AMD architektuˇre 29k RISC procesor˚ u s x86 dek´odovac´ım front-endem. Tyto procesory mˇely pouze nˇeco okolo 4,3 mili´on˚ u tranzistor˚ u. Obsahovaly pˇet integrovan´ ych jednotek, kter´e mohly zpracov´avat instrukce mimo poˇrad´ı a jednu FP jednotku. Procesor umˇel spekulativn´ı prov´ adˇen´ı instrukc´ı a mˇel 16KB instrukˇcn´ı cache.
Obr´ azek 1.17: AMD K5 architektura
1.3.2
AMD K6 architektura
AMD K6 procesory Tato ˇrada procesor˚ u pouˇz´ıvala RISC86 superskal´arn´ı mikroarchitekturu, byla kompatibiln´ı s Intel MMX technologi´ı. Pouˇz´ıvala L1 cache pamˇeˇt o velikosti 64KB rozdˇelenou na 32KB pro data a 32 KB pro instrukce. Obsahovaly FPU jednotku.
26
´ UVOD ´ KAPITOLA 1. TEORETICKY
Obr´ azek 1.18: AMD K6 architektura
AMD K6-2 procesory Tato generace procesor˚ u pouˇz´ıv´ a tak´e RISC86 mikroarchitekturu. M´a L1 cache pamˇeˇt o velikosti 64KB a nav´ıc 20KB predek´ odovac´ı cache pamˇeˇt. Vylepˇsuje FP jednotku a urychluje vykon´av´an´ı MMX instrukc´ı. Velk´ ym vylepˇsen´ım je pˇrid´an´ı 21 instrukc´ı AMD 3DNow! technologie, kter´a vylepˇsuje Intel MMX technologii.
Obr´ azek 1.19: AMD K6-2 architektura
´ UVOD ´ KAPITOLA 1. TEORETICKY
27
AMD K6-III procesory Z´akladn´ım rysem tˇechto procesor˚ u bylo vyuˇzit´ı tˇr´ı´ urovˇ nov´eho designu cache pamˇet´ı. Procesor obsahoval L1 cache o velikosti 64KB a L2 cache o velikosti 256KB, avˇsak umoˇzn ˇoval obˇema stupˇ n˚ um cache soubˇeˇzn´e prov´ adˇen´ı ˇctec´ıch a zapisovac´ıch operac´ı v jednom taktu procesoru. Tˇret´ı u ´rovn´ı byla odpojiteln´ a L3 cache o velikosti od 512KB do 2048KB integrovan´a na z´akladn´ı desce. Tato architektura se pˇr´ıliˇs neprosadila a byla brzy nahrazena.
Obr´ azek 1.20: AMD K6-3 architektura
1.3.3
AMD K7 architektura
AMD Athlon Jedn´a se o prvn´ı superskal´ arn´ı procesor z rodiny AMD, tento procesor byl schopn´ y zpracovat aˇz ˇctyˇri 32bitov´e single-precision FP instrukce v jednom taktu. Dalˇs´ım z´akladn´ım vylepˇsen´ım bylo zvˇetˇsen´ı L1 cache na 128KB a L2 cache od 512KB aˇz do 8MB. Byla tak´e pˇrid´ana podpora Enhanced 3DNow! technologie, kter´a znamenala rozˇs´ıˇren´ı o dalˇs´ıch 24 instrukc´ı a byla reakc´ı na SIMD instrukce procesoru Intel Pentium III.
AMD ThunderBird Jedn´a se o vylepˇsenou architekturu AMD Athlon procesoru. Hlavn´ım rozd´ılem bylo sn´ıˇzen´ı L2 cache pamˇeti na 256KB, kter´ a ale byla integrovan´a pˇr´ımo na ˇcipu.
28
´ UVOD ´ KAPITOLA 1. TEORETICKY
Obr´ azek 1.21: AMD Athlon architektura
AMD Duron AMD Duron jsou procesory m´ıˇren´e na low-end trh, kter´e byly odpovˇed´ı na Intel Celeron architekturu. D´ıky tomu byla sn´ıˇzena velikost L2 cache na 64KB, velikost L1 cache byla st´ale 128KB. L2 cache byla sn´ıˇzena, jelikoˇz se AMD rozhodla pro jin´ y design cache pamˇeti, kde data nejsou zrcadlena mezi L1 a L2 cache pamˇetmi. L1 cache pamˇeˇt se stala prim´arn´ım cache zdrojem a pomalejˇs´ı L2 cache ukl´ adala bloky, kter´e se zapisovaly zp´atky do pamˇeti. AMD Palomino Generace procesor˚ u AMD Palomino pˇriˇsla s nˇekolika z´asadn´ımi vylepˇsen´ımi, kter´e AMD souhrnnˇe nazvalo QuantiSpeed architektura. Mezi z´akladn´ımi rysy t´eto architektury patˇr´ı vylepˇsen´ı Transition Lookaside Bufferu a implementace 52 nov´ ych SIMD instrukc´ı, kter´e se souhrnnˇe oznaˇcuj´ı jako AMD 3DNow! Professional. AMD Morgan Jedn´a se o procesory m´ıˇren´e na low-end segment podobnˇe jako generace AMD Duron. Vych´az´ı se zde z j´adra Palomino, avˇsak L2 cache je sn´ıˇzena z 256KB na 64KB. AMD Thoroughbred Jde o upraven´e j´ adro Palomino, kter´e je pouze vyr´abˇeno pokroˇcilejˇs´ım v´ yrobn´ım procesem. Z hlediska architektury nebyly pouˇzity ˇz´ adn´e v´ yraznˇejˇs´ı zmˇeny.
´ UVOD ´ KAPITOLA 1. TEORETICKY
29
AMD Barton Barton je m´ırnˇe vylepˇsen´e j´ adro u kter´eho byla zv´ yˇsena kapacita L2 cache na 512KB. 1.3.4
AMD K8 architektura
AMD Athlon 64 ˇ firmy Tato generace procesor˚ u jako prvn´ı vyuˇz´ıv´a AMD64 instrukˇcn´ıho setu, coˇz je odpovˇed AMD na Intel 64 architekturu.
Obr´ azek 1.22: AMD K8 architektura
AMD Sempron ˇ na Intel Celeron D procesory. Procesor vych´az´ı z Athlon Opˇet se jedn´ a o low-endovou odpovˇed 64 architektury.
´ UVOD ´ KAPITOLA 1. TEORETICKY
30 AMD Athlon 64 X2
Tato ˇrada je prvn´ı generac´ı procesor˚ u od AMD, kter´e jsou tvoˇreny v´ıce procesorov´ ymi j´adry. V tomto pˇr´ıpadˇe se jedn´ a o dvouj´ adrov´ a ˇreˇsen´ı. Kaˇzd´e j´adro vych´az´ı z Athlon 64 architektury a existuj´ı dva designy: • Manchester - 512KB L2 cache • Toledo - 1MB L2 cache AMD Turion 64 Jedn´a se o ˇradu procesor˚ u zamˇeˇren´ ych na malou spotˇrebu. Jsou to 64 bitov´e procesory osazen´e 512 aˇz 1024 KB L2 cache, kter´e obsahuj´ı podporu mnoha technologi´ı na sn´ıˇzen´ı spotˇreby jako napˇr´ıklad PowerNow!. AMD Turion 64 X2 Jde o dvouj´adrov´e ˇreˇsen´ı vych´ azej´ıc´ı z Turionu 64, kter´e je tak´e zamˇeˇreno na mobiln´ı segment trhu. Um´ı nav´ıc AMD Virtualization technologii. AMD Turion 64 X2 Ultra Tyto procesory jsou souˇc´ ast´ı AMD platformy Puma. Jde o dvouj´adrov´ y procesor vyr´abˇen´ y 65nm v´ yrobn´ım procesem. Kaˇzd´e j´ adro m´a 1 MB L2 cache. Novinkou je implementace tˇr´ı napˇeˇtov´ ych sch´emat. Jedno pro northbridge a zbyl´e dvˇe po jednom pro kaˇzd´e j´adro, d´ıky tomu m˚ uˇze j´adro mˇenit sv´e nap´ ajen´ı a frekvenci nez´avisle na tom druh´em a northbridgi. AMD Quad Core Barcelona Jde o prvn´ı ˇctyˇrj´ adrov´e ˇreˇsen´ı od AMD, kter´e je c´ıleno do server˚ u a pracovn´ıch stanic. ˇ rj´adrovosti procesoru je doc´ıleno t´ım, ˇze procesor obsahuje ˇctyˇri procesorov´a j´adra na jedCtyˇ nom ˇcipu, coˇz je rozd´ıl oproti Quad-Core technologii od firmy Intel, kde jsou na jednom ˇcipu dvˇe dual-core j´adra. Tato architektura pracuje s tˇr´ıstupˇ novou cache pamˇet´ı, kde z´akladem st´ale z˚ ust´avaj´ı 64KB L1 cache a 512KB L2 cache, kter´e m´a kaˇzd´e procesorov´e j´adro zvl´aˇsˇt. Nav´ıc je zde L3 cache pamˇeˇt o velikosti aˇz 2MB, kter´a je sd´ılena vˇsemi procesorov´ ymi j´adry. 1.3.5
AMD K10 architektura
Nejnovˇejˇs´ı architektura od AMD, kter´ a najde vyuˇzit´ı u procesor˚ u z rodin Athlon Dual-Core 6000 a ˇctyˇrj´adrov´ ych procesor˚ u Phenom. Souˇc´ast´ı t´eto architektury je nˇekolik inovac´ı: • Enhanced PowerNow! technologie - pomoc´ı t´eto technologie mohou j´adra a integrovan´ y ˇ pamˇetov´ y ˇradiˇc dynamicky mˇenit sv´e n´aroky na nap´ajen´ı • CoolCore technologie - umoˇzn ˇuje j´adr˚ um vypnout ˇc´asti sv´ ych obvod˚ u, kter´e nejsou vyuˇz´ıv´any • pˇrednaˇc´ıt´ an´ı pˇr´ımo do L1 cache pamˇeti • dva 64 bitov´e nez´ avisl´e pamˇeˇtov´e ˇradiˇce, kaˇzd´ y s vlastn´ım fyzick´ ym adresn´ım prostorem • 48 bitov´e pamˇeˇtov´e adresov´ an´ı • Podpora HyperTransport 3.0
´ UVOD ´ KAPITOLA 1. TEORETICKY
31
• rozˇs´ıˇren´ı instrukˇcn´ı sady - nov´e instrukce pro manipulaci s bity (LZCNT, POPCNT) - nov´e SSE instrukce, pojmenovan´e jako SSE4a, kter´e se nenach´az´ı v SSE4 implementaci od firmy Intel - podpora pro nezarovnan´e SSE load instrukce • vylepˇsen´ı pipeline - 128 bit˚ u ˇsirok´e SSE jednotky - ˇsirˇs´ı L1 datov´ y cache interface, umoˇzn ˇuj´ıc´ı dvˇe 128b naˇcten´ı v jednom cyklu - menˇs´ı latence pˇr´ı dˇelen´ı n´ızk´ ych integer ˇc´ısel - nepˇr´ım´e odhadov´ an´ı skok˚ u s 512 z´aznamy, vˇetˇs´ı n´avratov´ y z´asobn´ık a tak´e buffer pro c´ıle skok˚ u
Obr´ azek 1.23: AMD K10 architektura
´ UVOD ´ KAPITOLA 1. TEORETICKY
32 AMD Phenom X4 procesory
Phenom X4 procesory s k´ odov´ ym oznaˇcen´ım Agena jsou prvn´ı generac´ı procesor˚ u z AMD K10 architektury. Vlastnosti tˇechto procesor˚ u jsou: • je to ˇctyˇrj´ adrov´ y procesor • L1 cache o velikosti 64KB pro data a 64KB pro instrukce pro kaˇzd´e j´adro • L2 cache o velikosti 512KB pro kaˇzd´e j´adro • pamˇeˇtov´ y ˇradiˇc s podporou DDR2 pamˇeˇtov´ ych modul˚ u o frekvenci aˇz 1066MHz • podporuj´ı technologie AMD64, PowerNow!, NX bit, AMD-V • implementace HyperTransport technologie AMD Phenom X3 procesory • procesor s k´ odov´ ym oznaˇcen´ım Toliman • je to tˇr´ıj´adrov´ y procesor • ostatn´ı jeho vlastnosti jsou stejn´e jako u Phenom X4 procesor˚ u 1.3.6
AMD K10.5 architektura
AMD Phenom II • je to ˇctyˇrj´ adrov´ y procesor • procesor vyr´ abˇen´ y 45nm v´ yrobn´ım procesem vych´azej´ıc´ı z AMD Phenom procesoru • m´a 6 MB velkou sd´ılenou L3 cache pamˇeˇt • obsahuje AM3 pamˇeˇtov´ y ˇradiˇc, kter´ y novˇe podporuje i DDR3 pamˇeti • existuj´ı i varianty procesoru se tˇremi j´adry nebo 4MB L3 cache
´ UVOD ´ KAPITOLA 1. TEORETICKY
1.4
33
Technologie procesor˚ u AMD
Opˇet i zde v tomto pˇrehledu procesor˚ u rodiny AMD zaznˇelo nˇekolik v´ yznamn´ ych technologi´ı viz. [13], kter´e si zaslouˇz´ı podrobnˇejˇs´ı rozebr´an´ı. Jedn´a se o technologie: • 3DNow! • HyperTransport • AMD64 architektura 1.4.1
3DNow!
Jde o technologii, kter´ a byla poprv´e uvedena u AMD K6-2 procesor˚ u. Jej´ım z´akladn´ım u ´ˇcelem bylo lepˇs´ı zvl´ adnut´ı pr´ ace s FP instrukcemi. P˚ uvodnˇe byla tato sada instrukc´ı vyvinuta jako rozˇs´ıˇren´ı MMX sady instrukc´ı. Hlavn´ım smyslem je zv´ yˇsen´ı v´ ykonu v 3D v´ ypoˇctech. Kaˇzd´ a 3DNow! instrukce obsluhuje dva FP operandy. K6-2 architektura umoˇzn ˇuje zpracov´avat dvˇe 3DNow! instrukce v jednom cyklu, coˇz d´av´a dohromady 4 FP operace za jeden takt. P˚ uvodn´ı implementace obsahovala sadu 21 instrukc´ı, kter´e obsahovaly podporu SIMD FP operac´ı.
Obr´ azek 1.24: 3DNow technologie
1.4.2
Enhanced 3DNow!
Rozˇs´ıˇren´ı 3DNow! instrukˇcn´ı sady, kter´a byla poprv´e uvedena s prvn´ı generac´ı procesor˚ u z rodiny Athlon. Bylo pˇrid´ ano 5 nov´ ych instrukc´ı a pozdˇeji dalˇs´ıch 5 pro podporu digit´aln´ıho zpracov´an´ı sign´ al˚ u (DSP). 1.4.3
HyperTransport
P˚ uvodnˇe se tato technologie jmenovala Lightning Data Transport (LDT). Jde o technologii, kter´a zajiˇsˇtuje dvoubodov´e spojen´ı s velmi n´ızkou dobou zpoˇzdˇen´ı. Tato technologii je vyuˇz´ıv´ana firmami AMD a Transmeta v x86 procesorech, firmami PMC-Sierra, Broadcom a Raza Microelectronics v MIPS mikroprocesorech, AMD, NVIDIA, VIA a SiS v PC chipsetech, HP, Sun Microsystems, IBM a Flextronics v serverech, Cisco Systems v routerech.
´ UVOD ´ KAPITOLA 1. TEORETICKY
34 ˇ existuj´ı 3 verze HyperTransport technologie: Doted
Obr´ azek 1.25: verze HyperTransport technologie
Verze 1.0 byla uvedena v roce 2001, verze 2.0 v roce 2004, verze 3.0 v roce 2006. Jde o DDR (Double Date Rate) spojen´ı, coˇz znamen´a, ˇze data jsou pos´ıl´ana jak na n´abˇeˇznou, tak i na sestupnou hranu hodinov´eho sign´ alu. HyperTransport je paketovˇe orientovan´ ym spojen´ım, coˇz m´a nˇekolik d˚ usledk˚ u: • kaˇzd´ y paket obsahuje set 32 bitov´ ych slov • prvn´ı slovo v paketu je vˇzdy ˇr´ıd´ıc´ı slovo • pokud paket obsahuje adresu, tak posledn´ıch 8 bit˚ u ˇr´ıd´ıc´ıho slova je spojeno s dalˇs´ım 32 bitov´ ym slovem, ˇc´ımˇz je vytvoˇrena 40 bitov´a adresa • pokud je vyˇzadov´ ano 64 bitov´e adresov´an´ı, tak se pˇripoj´ı nav´ıc 32 bitov´ y ˇr´ıd´ıc´ı paket • pˇren´aˇsen´a data jsou potom d´ ale rozdˇelena do jednotliv´ ych 32 bitov´ ych paket˚ u • HyperTransport spojen´ı se d´ a pouˇz´ıt pro generov´an´ı syst´emov´ ych zpr´av, k signalizaci pˇreruˇsen´ı nebo napˇr´ıklad k V/V a datov´ ym transakc´ım
´ UVOD ´ KAPITOLA 1. TEORETICKY
35
Obr´ azek 1.26: HyperTransport technologie
1.4.4
AMD64 architektura
Jde o architekturu AMD procesor˚ u, kter´a pˇrinesla podporu 64 bitov´ ych instrukc´ı. Samozˇrejmost´ı je zpˇetn´a kompatibilita s 32 bitov´ ymi a 16 bitov´ ymi aplikacemi a operaˇcn´ımi syst´emy bez jejich modifikace ˇci rekompilace. Z´akladn´ı vlastnosti AMD64 architektury: • rozˇs´ıˇren´ı registr˚ u – 8 univerz´ aln´ıch registr˚ u nav´ıc – vˇsech 16 univerz´ aln´ıch registr˚ u je 64 bitov´ ych – osm 128 bitov´ ych XMM registr˚ u – jednotn´e byte-register adresov´an´ı pro vˇsechny univerz´aln´ı registry • Long Mode – aˇz 64 bit˚ u virtu´ aln´ı adresy – 64 bitov´ y instruction pointer – Instruction-Pointer-Relative Data adresn´ı m´od
36
´ UVOD ´ KAPITOLA 1. TEORETICKY
Obr´ azek 1.27: AMD64 technologie - registry
Obr´ azek 1.28: AMD64 technologie - operaˇcn´ı m´ody
´ UVOD ´ KAPITOLA 1. TEORETICKY
37
• Srovn´ an´ı dostupnosti registr˚ u a z´asobn´ıku pro 32 bitov´ y m´od - Legacy mode (lev´ y sloupec) a 64 bitov´ y m´ od (prav´ y sloupec)
Obr´ azek 1.29: srovn´ an´ı dostupnosti registr˚ u a z´asobn´ıku pro 32 a 64 bitov´ y m´od
1.5
Procesory PowerPC
Tato procesorov´ a ˇrada je vyv´ıjena konsorciem firem Apple, IBM a Motorola. Jedn´a se o procesor typu RISC, coˇz znamen´ a: • procesor m´ a pevnou d´elku instrukc´ı a oddˇelenou mnoˇzinu instrukc´ı pracuj´ıc´ıch s pamˇet´ı (LOAD/STORE) • procesor m´ a k dispozici 32 GPR registr˚ u a vektorov´e rozˇs´ıˇren´ı AltiVec • je to superskal´ arn´ı procesor s podporou pipeliningu, se zpracov´av´an´ım instrukc´ı mimo poˇrad´ı a s moˇznost´ı pˇredpov´ıd´an´ı vˇetven´ı • procesor se m˚ uˇze pˇrep´ınat mezi little-endian a big-endian m´odem (nen´ı podporov´ano u nejnovˇejˇs´ı G5 generac´ı procesor˚ u) • dnes uˇz um´ı kompletn´ı 64 bitovou specifikaci zpˇetnˇe kompatibiln´ı s 32 bitovou architekturou Altivec • jedn´ a se o sadu 162 SIMD instrukc´ı, kter´a m´a k dispozici 32 vlastn´ıch 128 bitov´ ych registr˚ u • pouˇz´ıvaj´ı se k akceleraci multimedi´aln´ıch aplikac´ı
´ UVOD ´ KAPITOLA 1. TEORETICKY
38
PowerPC procesory se daj´ı rozdˇelit na 5 generac´ı viz. [11], jak je uvedeno na n´asleduj´ıc´ıch obr´azc´ıch. P´at´a generace je jiˇz plnˇe 64 bitov´a a zaˇc´ın´a IBM 970 procesorem. 32 bitov´ e procesory
Obr´ azek 1.30: pˇrehled 32 bitov´ ych procesor˚ u - ˇc´ast prvn´ı
´ UVOD ´ KAPITOLA 1. TEORETICKY
39
Obr´ azek 1.31: pˇrehled 32 bitov´ ych procesor˚ u - ˇc´ast druh´a
64 bitov´ e procesory
Obr´ azek 1.32: pˇrehled 64 bitov´ ych procesor˚ u
1.6
Procesory VIA
Pˇrehled VIA procesor˚ u viz. [12]: VIA Joshua (Jalapeno) • jde o procesor, kter´ y p˚ uvodnˇe vyv´ıjela firma Cyrix, neˇz tato firma byla prod´ana firmˇe VIA v roce 1999 • procesor mˇel podporu RDRAM pamˇeˇtov´ ych modul˚ u a MPEG dek´odov´an´ı • pouˇz´ıv´ a 133MHz sbˇernici, obsahuje dvan´actistupˇ novou pipeline • m´a L1 cache o velikosti 64KB, L2 cache o velikosti 256KB • podporuje MMX a 3DNow! Instrukce • jedn´ a se pouze o prototyp
´ UVOD ´ KAPITOLA 1. TEORETICKY
40 VIA Samuel (C5A)
• FP jednotky bˇeˇz´ı na poloviˇcn´ı frekvenci jako CPU • L1 cache o velikosti 64KB, L2 cache nem´a • pouˇz´ıv´a 100-133 MHz sbˇernici • m´a dvan´actistupˇ novou popel´ıne 1.6.1
VIA C3 procesorov´ aˇ rada
VIA Samuel 2(C5B) • m´a L1 cache o velikosti 128KB, L2 cache o velikosti 64KB • podporuje MMX a 3DNow! Instrukce • obsahuje dvan´ actistupˇ novou pipeline VIA Ezra/Ezra-T • jedn´a se pouze o vylepˇsen´ı architektury pouˇzit´e u procesor˚ u z rodiny Samuel 2 • bˇeˇz´ı na vyˇsˇs´ıch frekvenc´ıch neˇz procesory Samuel 2, jinak m´a velmi podobn´e vlastnosti VIA Nehemiah(C5XL) Jde o u ´plnˇe novou architekturu procesor˚ u, kter´a se zbavila neduh˚ u dˇr´ıvˇejˇs´ıch generac´ı procesor˚ u od firmy VIA, napˇr´ıklad nekompletn´ı MMX sady instrukc´ı, ˇci FP jednotky bˇeˇz´ıc´ı na poloviˇcn´ı frekvenci oproti procesoru. Z´ akladn´ı inovace jsou: • zvˇetˇsen´ı stupˇ n˚ u pipeline z 12 na 16 • opuˇstˇen´ı 3DNow! instrukc´ı a implementace SSE instrukˇcn´ı sady • sbˇernice bˇeˇz´ı st´ ale na 133MHz • implementov´ ano AES ˇsifrov´ an´ı VIA Antaur(C5P) • jde o procesor na b´ azi Nehemiah j´ adra, kter´ y je m´ıˇren na mobiln´ı zaˇr´ızen´ı • obsahuje technologii PowerSaver 3.0, kter´a dynamicky mˇen´ı spotˇrebu procesoru, je to velmi podobn´e Intel SpeedStep technologii 1.6.2
VIA C7 procesorov´ aˇ rada
Via Esther(C5J) Jde o dalˇs´ı evoluˇcn´ı skok oproti j´ adr˚ um z rodiny Nehemiah. Z´akladn´ı vlastnosti Esther procesoru jsou: • dok´aˇze bˇeˇzet aˇz na frekvenci 2GHz, sbˇernice bˇeˇz´ı na frekvenci 800MHz • L1 cache o velikosti 128KB, L2 cache o velikosti 128KB
´ UVOD ´ KAPITOLA 1. TEORETICKY
41
• velmi n´ızk´ a spotˇreba zajiˇstˇen´ a technologi´ı TwinTurbo, kter´a dok´aˇze mˇenit frekvenci procesoru v jednom procesorov´em taktu • podpora SSE2 a SSE3 instrukc´ı a tak´e NX bitu 1.6.3
VIA Nano(Isaiah)
Jde o novou procesorovou ˇradu firmy VIA viz. [10]. Tyto procesory jsou jako prvn´ı od firmy VIA 64 bitov´e. Touto platformou se VIA snaˇz´ı konkurovat nov´e mobiln´ı procesorov´e ˇradˇe firmy Intel - Intel Atom. Z toho plyne, ˇze tyto procesory jsou tak´e zamˇeˇreny na zaˇr´ızen´ı s velmi n´ızkou spotˇrebou a jim podobn´ a. Isaiah obsahuje nˇekolik vlastnost´ı, kter´e se v portfoliu firmy VIA objevuj´ı poprv´e: • podpora x86-64 instrukˇcn´ı sady • v´ yroba 65nm, pozdˇeji 45nm v´ yrobn´ım procesem • FSB sbˇernice bˇeˇz´ıc´ı na 800 aˇz 1333MHz • 64KB velk´ a L1 cache, L2 cache o velikosti 1MB • podpora virtualizaˇcn´ı technologie (stejn´a implementace jako od firmy Intel) • jedn´ a se o superskal´ arn´ı procesor se zpracov´av´an´ım instrukc´ı mimo poˇrad´ı - jde o prvn´ı procesor od firmy VIA, postaven´ y na out-of-order zpracov´an´ı instrukc´ı • Instruction Vision technologie - bude dovolovat spojit nˇekter´e jednoduch´e instrukce dohromady za u ´ˇcelem sn´ıˇzen´ı spotˇreby • vylepˇsen´e odhadov´ an´ı skok˚ u, je pouˇzito osm odhadovac´ıch jednotek ve dvou stupn´ıch pipeline • umoˇzn ˇuje cache exkluzivitu, kter´a zajiˇsˇtuje, ˇze data v L1 cache nebudou stejn´a jako data v L2 cache • dok´ aˇze naˇc´ıst ˇctyˇri x86 instrukce za jeden cyklus • podporuje MMX, SSE, SSE2, SSE3, SSSE3 instrukˇcn´ı sady • implementuje 3 nov´e technologie pro sn´ıˇzen´ı spotˇreby: – Adaptive P-State Control - pˇrep´ın´an´ı mezi nap´ajec´ımi u ´rovnˇemi bez ukonˇcen´ı prov´ adˇen´ı instrukc´ı – Adaptive Overclocking - automatick´e pˇretaktov´an´ı procesoru, pokud m´a procesor n´ızkou teplotu – Adaptive Thermal Limit - dok´aˇze udrˇzet procesor na teplotˇe, kter´a je pˇreddefinov´ ana uˇzivatelem • hardwarovˇe implementuje AES ˇsifrov´an´ı a SHA-1, SHA-256 hashov´an´ı
´ UVOD ´ KAPITOLA 1. TEORETICKY
42
Obr´ azek 1.33: VIA Isaiah architektura
1.7
Procesor Cell
Jde o v´ıcej´adrov´ y procesor, kter´ y je vyv´ıjen konsorciem spoleˇcnost´ı IBM, Sony a Toshiba. Procesor m˚ uˇze b´ yt vyroben v mnoha r˚ uzn´ ych konfigurac´ıch, avˇsak m´a nˇekolik z´akladn´ıch rys˚ u viz. [2]: • skl´ad´a se ze dvou hlavn´ıch ˇc´ asti a to hlavn´ıho j´adra s n´azvem Power Procesor Element (PPE) a nˇekolika menˇs´ıch jader naz´ yvan´ ych Synergistic Processing Elements (SPE) • tyto j´adra jsou spolu propojena pomoc´ı sbˇernice s n´azvem Element Interconnect Bus (EIB) • procesor je optimalizov´ an pro FP poˇc´ıt´an´ı s jednoduchou pˇresnost´ı, avˇsak SPE j´adra mohou prov´ adˇet FP operace s dvojitou pˇresnost´ı Power Processor Element j´ adro • jedn´a se o multivl´ aknov´e j´ adro, kter´e funguje jako ˇr´ıd´ıc´ı pro zbyl´a SPE j´adra • star´a se o vˇetˇsinu v´ ypoˇct˚ u • spolupracuje s vˇetˇsinou obvykl´ ych operaˇcn´ıch syst´em˚ u, jelikoˇz je velmi podobn´e 64 bitov´emu PowerPC procesoru • m´a L1 cache o velikosti 64KB (32KB pro data, 32KB pro instrukce) • 512 KB L2 cache • Obsahuje AltiVec jednotky, kter´e jsou specializov´any na FP operace s jednoduchou pˇresnost´ı
´ UVOD ´ KAPITOLA 1. TEORETICKY
43
Synergistic Processing Elements j´ adro • kaˇzd´e toto j´ adro je sloˇzeno ze Synergisti Processing Unit (SPU) a Memory Flow Controller (MFC) • jedn´ a se o RISC procesor, kter´ y obsahuje 256KB integrovan´e SRAM pamˇeti pro instrukce a data, kter´ a se naz´ yv´ a Local Storage • typick´ ym vyuˇzit´ım tˇechto jader je napˇr´ıklad naplnˇen´ı SPE mal´ ymi programy (nˇeco jako vl´ akna) a jejich v´ ysledn´ a paraleln´ı spolupr´ace na vyˇreˇsen´ı daleko komplexnˇejˇs´ıho probl´emu Element Interconnect Bus (EIB) • typovˇe jde o intern´ı komunikaˇcn´ı sbˇernici, kter´a v Cell procesoru spojuje dohromady jednotliv´e elementy procesoru: PPE j´adro, MIC - pamˇeˇtov´ y ˇradiˇc, SPE j´adra a dvˇe I/O rozhran´ı, jeˇz se nach´ az´ı mimo ˇcip • obsahuje arbitr´ aˇzn´ı jednotku, kter´a rozhoduje o vyuˇz´ıv´an´ı sbˇernice • je implementov´ ana jako kruhov´a sbˇernice, kter´a se skl´ad´a ze ˇctyˇr 16 bitov´ ych kan´ al˚ u, maxim´ aln´ı pˇrenos je 96B za jeden hodinov´ y takt • kaˇzd´ a z pˇripojen´ ych jednotek m´a jeden 16B ˇctec´ı port a jeden 16B zapisovac´ı port Pamˇ eˇ tov´ yˇ radiˇ c Rambus XIO • Cell obsahuje dvoukan´ alov´ y Rambus XIO pamˇeˇtov´ y ˇradiˇc, kter´ y komunikuje s Rambus XDR pamˇeˇtmi Syst´ emov´ yˇ radiˇ c FlexIO • vyuˇz´ıv´ a tak´e Rambus design • je organizov´ an do dvan´ acti ˇrad, kaˇzd´a ˇrada je 8 bitov´ y dvoubodov´ y spoj
´ UVOD ´ KAPITOLA 1. TEORETICKY
44
Obr´ azek 1.34: Cell procesor architektura
S t´ımto procesorem se dnes m˚ uˇzeme setkat napˇr´ıklad v hern´ı konzoli PlayStation 3, kde se jedn´a o jeho prvn´ı nasazen´ı. V t´eto konzoli je procesor taktov´an na 3,2 GHz a obsahuji 7 z obvykl´ ych 8 SPE jader. V konzoli je program´ator˚ um dostupn´ ych pouze ˇsest, jelikoˇz jedno je vyhrazeno pro operaˇcn´ı syst´em konzole. Dalˇs´ım jeho vyuˇzit´ım je napˇr´ıklad HDTV syst´em od Toshiby. Tento syst´em vyuˇz´ıvaj´ıc´ı Cell procesory je schopen dek´ odovat 48 MPEG-2 stream˚ u z´aroveˇ n v rozliˇsen´ı 1920x1080.
1.8
Procesor Xenon
Tento procesor je tak´e vyv´ıjen firmou IBM viz. [7]. S t´ımto procesorem se m˚ uˇzeme setkat v dneˇsn´ı modern´ı hern´ı konzoli a to v Xbox 360 od Microsoftu. • opˇet se jedn´ a o v´ıcej´ adrov´ y procesor, kter´ y se skl´ad´a ze tˇr´ı procesorov´ ych jader na jednom ˇcipu, kter´e pracuj´ı na frekvenci 3,2GHz • jedn´a se o procesory zaloˇzen´e na PowerPC architektuˇre • v´ ypoˇcetn´ı v´ ykon je tvoˇren matematick´ ym koprocesorem a dvˇema jednotkami AntiVec • kaˇzd´e j´adro m´ a vlastn´ı L1 cache o velikosti 64KB, 32KB pro data a 32KB pro instrukce. • procesorov´ a j´ adra spoleˇcnˇe sd´ılej´ı L2 cache o velikosti 1MB • souˇc´ast´ı platformy je tak´e grafick´ y procesor od firmy ATI s n´azvem Xenos • procesor m˚ uˇze vykonat dvˇe instrukce za jeden hodinov´ y takt v kaˇzd´em j´adˇre
´ UVOD ´ KAPITOLA 1. TEORETICKY
45
• kaˇzd´e j´ adro obsahuje dvˇe symetrick´a hardwarov´a vl´akna (SMT), coˇz d´av´a celkem 6 vl´ aken • je implementov´ ana standardn´ı sada PowerPC integer a FP registr˚ u a nav´ıc 128 VMX registr˚ u, kter´e jsou zamˇeˇreny na akceleraci 3D grafiky a hern´ı fyziky • procesor je vyroben 90nm v´ yrobn´ım procesem, v roce 2007 je zmodernizov´an na 65 nm v´ yrobn´ı proces a v roce 2009 je nasazena 45nm v´ yroba • jedn´ a se procesor s in-order zp˚ usobem zpracov´av´an´ı instrukc´ı, pouˇz´ıv´a big-endian architekturu
Obr´ azek 1.35: Xenon procesor architektura
˚ KAPITOLA 2. BUDOUC´I GENERACE PROCESORU
46
2 Budouc´ı generace procesor˚ u 2.1 2.1.1
Intel Corporation Intel Dunnigton procesor
Intel Dunnigton procesor bude posledn´ım procesorem z ˇrady Intel Xeon vyr´abˇen´ y 45nm procesem. Je tedy jasn´e, ˇze se bude jednat o procesor urˇcen´ y pro serverov´e stanice. Procesor bude m´ıt 6 jader a bude obsahovat 96KB L1 cache, tˇri sjednocen´e L2 cache o velikosti 3MB a 16MB L3 cache pamˇeti. Procesor bude nativn´ım ˇsestij´adrem, coˇz znamen´a, ˇze vˇsech 6 jader bude integrov´ano na jednom ˇcipu. Dunnington nebude m´ıt integrovan´ y pamˇeˇtov´ y ˇradiˇc jako procesory z ˇrady Nehalem.
Obr´ azek 2.1: Dunnington architektura
2.1.2
Intel Tukwila
Tukwila je k´odov´e oznaˇcen´ı pro budouc´ı generaci Intel Itanium procesor˚ u. Bude se jednat o procesor se 4 j´ adry na jednom ˇcipu vyroben´ y 65 nm procesem a s 30MB velkou L2 cache viz. [8]. Kaˇzd´e z jader bude schopno vykon´avat 2 vl´akna simult´annˇe, coˇz znamen´a 8 vl´aken zpracov´avan´ ych najednou. Tukwila bude tak´e vyuˇz´ıvat Intel QuickPath architekturu stejnˇe jako procesory z rodiny Nehalem. Intel Tukwila bude tak´e prvn´ım procesorem, kter´ y pˇrekon´a hranici 2 miliard tranzistor˚ u.
Obr´ azek 2.2: Tukwila architektura
˚ KAPITOLA 2. BUDOUC´I GENERACE PROCESORU 2.1.3
47
Intel Westmere
Bude se jednat o n´ astupce Intel Nehalem architektury pl´anovanou na rok 2009. Budou vyr´abˇen´e 32nm v´ yrobn´ım procesem. Tyto procesory by mˇely obsahovat novou sadu instrukc´ı AES-NI (hardwarov´ a akcelerace ˇsifrov´an´ı), tak´e by tyto procesory mˇely vyj´ıt souˇcasnˇe s integrovan´ ym GPU j´ adrem. Procesory budou nativnˇe ˇsestij´adrov´e. Teoreticky by mohly b´ yt aˇz ˇsestn´actij´ adrov´e (dual-die ˇreˇsen´ı) 2.1.4
Intel Larabee
V z´akladˇe se nejedn´ a o CPU ale o GPU jednotku viz. [3], avˇsak tato GPU jednotka je natolik zaj´ımavou aktivitou spoleˇcnosti Intel, ˇze stoj´ı za zm´ınku. Nˇekolik z´ akladn´ıch fakt˚ u, kter´e jsou o Larabee zat´ım dostupn´e: • bude obsahovat 10 nebo v´ıce jader na jednom ˇcipu, kaˇzd´e j´adro bude m´ıt vlastn´ı L1 cache pro data a instrukce a budou podporovat vykon´av´an´ı aˇz 4 vl´aken simult´annˇe • j´adra budou m´ıt implementov´ anu podmnoˇzinu x86 ISA instrukc´ı a nˇekter´e specifick´e GPU instrukce • d´ale budou obsahovat 512 bitovou vektorovou FPU jednotku s podporou zpracov´an´ı instrukc´ı na ˇr´ızen´ı toku (smyˇcky a skoky) a tak´e pro nˇekter´e skal´arn´ı operace • j´adra budou sd´ılet velkou L2 cache pamˇeˇt s podporou zamyk´an´ı ˇc´asti L2 cache pro dan´e j´adro • souˇc´ ast´ı bude tak´e integrovan´ y pamˇeˇtov´ y ˇradiˇc a tzv. fixed-function unit, funkce t´eto jednotky se bude liˇsit podle vyuˇzit´ı Larrabee platformy. Napˇr´ıklad pokud p˚ ujde o Larrabee GPU, tak zde bude nˇejak´ y typ rasterizaˇcn´ıho hardwaru. Pokud p˚ ujde o serverov´e vyuˇzit´ı Larrabee, tak zde m˚ uˇze b´ yt hardwarov´a ˇsifrovac´ı jednotka • procesor by mˇel b´ yt vyroben 45nm v´ yrobn´ım procesem • mˇel by bˇeˇzet na frekvenc´ıch mezi 1,7-2,5 GHz • prvn´ı vyuˇzit´ı pro Larrabee by mˇelo b´ yt pr´avˇe jako GPU
Obr´ azek 2.3: Larrabee architektura
˚ KAPITOLA 2. BUDOUC´I GENERACE PROCESORU
48
• Texture Sampler - reprezentuje zde jeden krok ze standardn´ı DirectX ˇci OpenGL 3D renderovac´ı pipeline • Pixel/Vertex shadery - jsou zde reprezentov´any in-order j´adry • kaˇzd´e j´adro bude m´ıt 32KB vlastn´ı L1 cache a 256KB ze sd´ılen´e L2 cache • jednotliv´e komponenty z GPU budou propojeny kruhovou sbˇernic´ı podobnou jako v IBM Cell procesoru • Larrabee GPU by mˇelo se sv´ ymi in-order j´adry zvl´adat urˇcit´e mnoˇzstv´ı ray-tracing technologie 2.1.5
Intel Sandy Bridge
O procesoru s t´ımto k´ odov´ ym jm´enem je zn´amo jen zat´ım velmi mal´e mnoˇzstv´ı informac´ı. Jedn´a se o procesor kter´ y by se mˇel objevit nˇekdy v roce 2010. Nˇekolik z´akladn´ıch vlastnost´ı: • mˇel by b´ yt vyroben 32nm v´ yrobn´ım procesem • bude m´ıt 4 aˇz 8 jader bˇeˇz´ıc´ıch na frekvenc´ıch okolo 4GHz • L1 cache o velikosti 32KB pro kaˇzd´e j´adro, L2 cache o velikosti 512KB pro kaˇzd´e j´adro • 2 aˇz 3 MB velkou L3 cache pro kaˇzd´e j´adro • j´adra by mˇela b´ yt na kruhov´e sbˇernici stejnˇe jako u Intel Larrabee • vyuˇzita by mˇela b´ yt Intel QuickPath Interconnect architektura • CPU a GPU by mˇely b´ yt na jednom ˇcipu • procesor by mˇel obsahovat nov´e instrukce nazvan´e Adanced Vector Extensions. Jde o vylepˇsenou formu SSE instrukc´ı, kter´e by mˇely b´ yt zamˇeˇreny na sloˇzit´e FP aplikace 2.1.6
Intel Ivy Bridge
Jde o n´astupce Intel Sandy Bridge, kter´ y by mˇel b´ yt vyr´abˇen 22nm v´ yrobn´ım procesem. Tyto procesory by se mˇely objevit nˇekdy v roce 2011 a mˇely by b´ yt ˇctyˇr nebo osmij´adrov´e. 2.1.7
Intel Haswell
Pravdˇepodobnˇe se bude jednat o u ´plnˇe novou architekturu procesor˚ u, kter´a by se mˇela objevit nˇekdy v roce 2012. Zat´ım je tato architektura v rann´e f´azi v´ yvoje, avˇsak je uˇz zn´amo nˇekolik z´akladn´ıch vlastnost´ı: • bude se jednat o prvn´ı procesory firmy Intel, kter´e budou implementovat Fused MultiplyAdd (Multiply-accumulate) - floating-point operace n´asoben´ı a pˇriˇcten´ı v jednom kroku s jednoduchou pˇresnost´ı • budou vyr´ abˇeny 22nm v´ yrobn´ım procesem (pozdˇeji pravdˇepodobnˇe 16nm) • osmij´adrov´e ˇreˇsen´ı uˇz od prvn´ıch procesor˚ u z t´eto architektury • u ´plnˇe nov´ y cache design • nov´ y syst´em u ´spory spotˇreby • procesor bude obsahovat vektorov´e koprocesory
˚ KAPITOLA 2. BUDOUC´I GENERACE PROCESORU
2.2
49
Advanced Micro Devices (AMD)
AMD Shanghai procesory - zaˇ c´ atek roku 2009 Jedn´a se o pˇr´ım´eho n´ astupce procesorov´e rodiny Barcelona. Bude stejnˇe jako procesory Barcelona nativn´ım ˇctyˇrj´ adrem. Bude vyroben 45nm technologi´ı. Jeho souˇc´ast´ı bude 128KB L1 cache, 512KB L2 cache a 6MB L3 cache. Obsahuje podporu HyperTransportu ve verzi 3.0, ˇci AMD Virtualization technologie. AMD Istanbul procesory - druh´ a polovina roku 2009 Bude se jednat o nativn´ı ˇsestij´ adrov´e procesory vyroben´e 45nm v´ yrobn´ım procesem. Ostatn´ı vlastnosti tˇechto procesor˚ u by mˇely b´ yt podobn´e jako u rodiny procesor˚ u Shanghai. AMD Magny-Cours a Sao Paulo procesory - rok 2010 Procesor z rodiny Magny-Cours by mˇel vych´azet z dvan´actij´adrov´eho designu, mˇel by podporovat DDR3 pamˇeti a technologii, kterou AMD naz´ yv´a probe filter. Tato technologie by mˇela zajistit redukci poˇctu cache snoopingu nezbytn´eho k zajiˇstˇen´ı pamˇeˇtov´e koherence. Procesory Sao Paulo budou m´ıt ˇsestij´ adrov´ y design. Ostatn´ı vlastnosti budou stejn´e jako u procesor˚ uz rodiny Magny-Cours. AMD Bulldozer platforma Bude se pro AMD jednat o u ´plnˇe novou architekturu procesor˚ u viz. [1]. Tyto procesory by mˇely b´ yt zaloˇzeny na M-SPACE designu procesor˚ u. Budou podporovat novou verzi AMD Direct Connect architektury. Nˇekter´e z dalˇs´ıch zn´am´ ych vlastnost´ı t´eto rodiny procesor˚ u: • bude se st´ ale jednat o superskal´arn´ı architekturu se zpracov´av´an´ım instrukc´ı mimo poˇrad´ı • bude m´ıt nov´e instrukce zamˇeˇren´e na zpracov´av´an´ı multim´edi´ı • podpora HyperTransport 3.0, ˇctyˇri HyperTransport 3.0 linky • podporu DDR3 pamˇeˇtov´ ych modul˚ u - G3MX technologie • m˚ uˇze m´ıt integrovan´ y PCIExpress 2.0 kontroler - IOMMU technologie (hardwarovˇe akcelerovan´ a V/V virtualizace) • jeho souˇc´ ast´ı je tak´e podpora nov´ ych SIMD instrukc´ı (170 nov´ ych instrukc´ı s n´azvem SSE5) Souˇc´ast´ı t´eto platformy budou serverovˇe zaloˇzen´e procesory s oznaˇcen´ım SandTiger, kter´e se budou skl´ adat z 8 aˇz 16 Bulldozer jader, kter´a budou optimalizov´ana pro serverov´e aplikace. AMD Bobcat platforma Jedn´a se o jednoduˇsˇs´ı architekturu neˇz platforma Buldozer. Bobcat platforma je m´ıˇrena na ultra-mobiln´ı zaˇr´ızen´ı s velmi malou spotˇrebou a bude tak´e zaloˇzena na M-SPACE designu procesor˚ u. AMD M-SPACE design Jde o marketingov´ y n´ azev pro design procesor˚ u, kdy se procesor bude skl´adat ze stavebn´ıch blok˚ u jako GPU jader, CPU jader, pamˇeˇtov´ ych ˇradiˇc˚ u nebo r˚ uzn´eho specializovan´eho hardwaru. Tyto ˇc´asti m˚ uˇzou b´ yt r˚ uznˇe skl´ ad´ any pro r˚ uzn´e specifick´e potˇreby.
˚ KAPITOLA 2. BUDOUC´I GENERACE PROCESORU
50 AMD Puma platforma
Jedn´a se tak´e o platformu urˇcenou pro mobiln´ı zaˇr´ızeni viz. [6], kter´a je pˇredch˚ udcem AMD Shrink platformy. Z´ akladem t´eto platformy je procesor Turion X2 Ultra s k´odov´ ym oznaˇcen´ım Griffin. Jde o vylepˇsen´ı p˚ uvodn´ıho Turion X2 procesoru. Z´akladn´ı vlastnosti tohoto procesoru jsou: • je vyroben 65nm v´ yrobn´ım procesem • oproti Turionu X2 bude m´ıt zv´ yˇsenou L2 cache na 1 MB pro kaˇzd´e j´adro • podporu HyperTransportu verze 3.0 s pˇrenosem aˇz 14,4 GB/s • procesor m´ a integrovan´ y pamˇeˇtov´ y ˇradiˇc pˇr´ımo na ˇcipu, z ˇcehoˇz plyne, ˇze hlavn´ı pamˇeˇtov´ y pˇrenos pro cel´ y syst´em bude muset proch´azet skrz procesor
Obr´ azek 2.4: AMD Puma architektura
AMD Fusion platforma Bude se jednat o procesory z rodiny Falcon. AMD Fusion je platforma jenˇz kombinuje moˇznosti klasick´eho CPU s GPU jednotkou. Jedn´a se o procesor, kde na jednom ˇcipu nalezneme n´asleduj´ıc´ı komponenty viz. [4]: • sd´ılen´ y pamˇeˇtov´ y ˇradiˇc ˇ na platformˇe Buldozer nebo Bobcat • j´adro zaloˇzen´e bud • DirectX GPU j´ adro s podporou UVD • sd´ılenou cache pamˇeˇt mezi CPU a GPU • PCIExpress ˇradiˇc PCIExpress ˇradiˇc bude m´ıt podporu DDR3 pamˇeˇtov´ ych modul˚ u a to jak pro CPU, tak i pro GPU. AMD Shrink procesor, kter´ y by se mˇel objevit nˇekdy v roce 2009, bude prvn´ım procesorem z t´eto rodiny. Nebude jeˇstˇe vyuˇz´ıvat pl´anovan´e procesory z Buldozer platformy, ale mˇel by b´ yt zaloˇzen na dvouj´ adrov´ ych procesorech Shanghai, kter´e by mˇely dostat nov´e technologie pro spr´ avu nap´ ajen´ı.
˚ KAPITOLA 2. BUDOUC´I GENERACE PROCESORU
51
Obr´ azek 2.5: AMD Fusion architektura Tyto procesory budou prim´ arnˇe zamˇeˇreny na mobiln´ı ˇc´ast trhu. AMD Eagle platforma Jedn´a se o mobiln´ı platformu AMD, kter´a je pl´anov´ana aˇz na rok 2010, takˇze je zat´ım zn´ amo jen nˇekolik z´ akladn´ıch fakt˚ u: • bude pouˇz´ıvat ˇctyˇrj´ adrov´ y procesor • procesor bude vyroben 45nm v´ yrobn´ım procesem • podpora DDR3 pamˇet´ı s frekvenc´ı aˇz 1600MHz • integrov´ ano DirectX 10.1 GPU • nov´ y Southbridge SB800/900
2.3
POWER6 architektura
Power6 architektura je novou ˇradou procesor˚ u od firmy IBM viz. [5]. • procesory jsou vyr´ abˇeny 65nm v´ yrobn´ı technologi´ı • jsou schopny pracovat na vysok´ ych frekvenc´ıch od 3,5 aˇz po 4,7 Ghz • dvouj´ adrov´ y procesor, kter´ y prov´ad´ı in-order zpracov´av´an´ı instrukc´ı • L1 cache o velikosti 128KB (64KB pro data, 64KB pro instrukce) • kaˇzd´e j´ adro m´ a 4MB poloviˇcnˇe sd´ılen´e L2 cache, coˇz znamen´a ˇze cache je sice pˇriˇrazena jednomu j´ adru, avˇsak zbyl´e j´ adro m´a k t´eto pamˇeti tak´e pˇr´ıstup • obˇe j´ adra sd´ılej´ı 32MB velkou L3 cache, kter´a je um´ıstˇena mimo ˇcip
52
˚ KAPITOLA 2. BUDOUC´I GENERACE PROCESORU • kaˇzd´e j´adro obsahuje dvˇe integer jednotky, 2 bin´arn´ı FP jednotky • m´a hardwarovou podporu pro des´ıtkovou aritmetiku, t´ım p´adem obsahuje des´ıtkovou FP jednotku. To znamen´ a, ˇze procesor um´ı 50 nov´ ych FP instrukc´ı, kter´e se staraj´ı o des´ıtkovou aritmetiku a konverzi mezi dvojkovou a des´ıtkovou soustavou • obsahuje AltiVec jednotku a podporuje ViVA-2 technologii, kter´a umoˇzn ˇuje aby se procesor choval jako vektorov´ y procesor
´ KAPITOLA 3. BENCHMARKY A JEJICH VYSLEDKY
53
3 Benchmarky a jejich v´ ysledky V praxi se k testov´ an´ı procesor˚ u pouˇz´ıv´a tzv. benchmark˚ u, obvykle se jedn´a o poˇc´ıtaˇcov´ y program nebo sadu program˚ u. V poˇc´ıtaˇcov´e praxi se obvykle objevuj´ı tˇri z´akladn´ı druhy benchmark˚ u: • Hardwarov´e benchmarky - tyto benchmarky b´ yvaj´ı naps´any tak, ˇze testuj´ı jednotliv´e ˇc´ asti poˇc´ıtaˇcov´eho hardwaru. Napˇr´ıklad procesor˚ u pˇri prov´adˇen´ı urˇcit´ ych typ˚ u operac´ı. Jsou uˇz´ıv´ any jako metoda pro porovn´av´an´ı v´ ykonu jednotliv´ ych ˇc´ast´ı hardwaru poˇc´ıtaˇce mezi sebou • Softwarov´e benchmarky - b´ yvaj´ı pouˇz´ıv´any pro testov´an´ı specifick´ ych typ˚ u software u kter´ ych m´ a takov´e testov´ an´ı smysl, napˇr´ıklad pro otestov´an´ı v´ ykonu datab´azov´eho syst´emu, ˇci pˇrekladaˇce • Testovac´ı benchmarky - jedn´ a se o benchmarky, kter´e slouˇzen´ı k zjiˇstˇen´ı korektn´ıho fungov´ an´ı software
3.1
Hardwarov´ e benchmarky - CPU
Porovn´av´ an´ı v´ ykonnosti mezi procesory m˚ uˇze b´ yt ˇcasto velk´ ym problem´em a to z nˇekolika z´asadn´ıch d˚ uvod˚ u: • dnes uˇz se nestaˇc´ı pouze pod´ıvat na specifikace dan´eho procesoru, aby se dalo urˇcit, kter´ y procesor je v´ ykonnˇejˇs´ı (procesor s menˇs´ım taktem m˚ uˇze b´ yt v´ ykonnˇejˇs´ı neˇz daleko v´ yˇse taktovan´ y procesor) • procesory z r˚ uzn´ ych generac´ı mohou b´ yt vnitˇrnˇe jinak organizovan´e nebo podporovat jin´e technologie • jeˇstˇe horˇs´ı situace nast´ av´ a pokud se jedn´a o procesory r˚ uzn´ ych v´ yrobc˚ u, kde velkou pˇrek´ aˇzkou pro objektivn´ı testov´an´ı m˚ uˇze b´ yt jejich vz´ajemn´a nekompatibilita Procesory se tetuj´ı mnoha r˚ uzn´ ymi zp˚ usoby, avˇsak z´akladn´ı princip benchmarku je vˇetˇsinou stejn´ y: 1. zaznamenat ˇcas startu benchmarku 2. prov´est k´ od benchmarku 3. zaznamenat ˇcas konce benchmarku 4. zobrazit v´ ysledky 3.1.1
Mˇ eˇ ren´ı ˇ casu u benchmark˚ u
Z´akladn´ım kamenem kaˇzd´eho mˇeˇren´ı je doba trv´an´ı prov´adˇen´ ych operac´ı - tedy ˇcas, kter´ y str´ av´ı procesor vykon´ av´ an´ım instrukc´ı dan´eho programu. K tomu abychom mohli urˇcit´ ym zp˚ usobem porovn´avat v´ ysledky potˇrebujeme zn´at, jak dlouho dan´ y program pobˇeˇz´ı. Tento ˇcas m˚ uˇzeme u modern´ıch procesor˚ u zjistit dvˇema z´akladn´ımi zp˚ usoby: • hardwarov´ ymi metodami, coˇz znamen´a vyuˇzit´ı zp˚ usob˚ u, kter´e jsou integrov´any pˇr´ımo v procesoru • softwarov´ ymi metodami, coˇz jsou metody, kde vyuˇzijeme funkc´ı operaˇcn´ıho syst´emu
´ KAPITOLA 3. BENCHMARKY A JEJICH VYSLEDKY
54 3.1.1.1
Hardwarov´ e metody mˇ eˇ ren´ı ˇ casu bˇ ehu programu
Time Stamp Counter - TSC (ˇ c´ıtaˇ c takt˚ u procesoru) • jedn´a se o ˇc´ıtaˇc, kter´ y obsahuje vˇetˇsina modern´ıch procesor˚ u • procesory Intel maj´ı tento ˇc´ıtaˇc od procesorov´e ˇrady Pentium, procesory AMD od ˇrady K5 • ˇc´ıtaˇc funguje tak, ˇze s kaˇzd´ ym taktem procesoru se jeho hodnota zvyˇsuje o jedniˇcku, ˇcitaˇc se resetuje pˇri resetu procesoru • jedn´a se tedy o 64 bitov´ y ˇc´ıtaˇc • jeho hodnota se d´ a zjistit pomoc´ı instrukce RDTSC, kter´a 64 bitovou hodnotu ˇc´ıtaˇce pˇrevede do dvou 32 bitov´ ych registr˚ u Performance counters ˇ ı data o v´ • jedn´a se o speci´ aln´ı registry, kter´e shromaˇzduj´ ykonnosti procesoru, aniˇz by zas´ahly do v´ ykonnosti prov´ adˇen´eho programu • princip jejich ˇcinnosti je takov´ y, ˇze jeden performance counter m˚ uˇze napˇr´ıklad zjiˇsˇtovat miss rate cache pamˇeti, zat´ımco jin´ y counter sleduje statistiku ˇcten´ı/z´apisu dat 3.1.1.2
Softwarov´ e metody mˇ eˇ ren´ı ˇ casu bˇ ehu programu
QueryPerformanceCounter, QueryPerformanceFrequency funkce • tyto funkce jsou souˇc´ ast´ı sluˇzeb operaˇcn´ıho syst´emu Microsoft Windows, volan´ ych pˇres aplikaˇcn´ı programov´e rozhran´ı Win32API • princip ˇcinnosti tˇechto dvou funkc´ı je takov´ y, ˇze QueryPerformanceCounter funkce vr´at´ı aktu´aln´ı hodnotu tzv. high-resolution performance counteru. Tato funkce se zavol´a na poˇc´atku a na konci bˇehu mˇeˇren´eho programu. QueryPerformanceFrequency funkce vr´at´ı aktu´aln´ı frekvenci high-resolution performance counteru, takˇze pokud QueryPerformanceCounter funkce vr´ at´ı na zaˇc´ atku bˇehu programu hodnotu 1000 a na konci 3000, coˇz d´av´a rozd´ıl 2000, a QueryPerformanceFrequency funkce vr´at´ı hodnotu 50 000, tak z toho plyne, ˇze 2000 takt˚ u bˇehu programu trvalo 0.04 sekundy Vol´ an´ı aktu´ aln´ıho syst´ emu v r˚ uzn´ ych programovac´ıch jazyc´ıch Vˇetˇsina programovac´ıch jazyk˚ u m´ a nˇejakou moˇznost jak zjistit aktu´aln´ı syst´emov´ y ˇcas: • Java - System.currentMillis(),System.nanoTime() • C - strtime
3.2
Popis demonstraˇ cn´ıho benchmarku
C´ılem navrhnut´eho benchmarku je otestovat dvˇe oblasti ˇcinnosti dneˇsn´ıch procesor˚ u a to: • ˇcinnost v´ıcej´ adrov´ ych procesor˚ u • pr´aci procesoru s cache pamˇetmi
´ KAPITOLA 3. BENCHMARKY A JEJICH VYSLEDKY
55
Samotn´e aplikace jsou vytvoˇreny pomoc´ı: • programovac´ıho jazyka Java • programovac´ıho jazyka C++ • strojov´eho k´ odu - assembleru Benchmark obsahuje celkovˇe pˇet test˚ u, z nichˇz ˇctyˇri jsou vytvoˇreny v programovac´ım jazyce Java. Posledn´ı z test˚ u je kombinac´ı Javy, C++ a Assembleru. Java samotn´a neum´ı pˇristupovat k syst´emov´ ym vol´ an´ım j´ adra, t´ım p´adem nejde pˇr´ımo volat programy napsan´e ve strojov´em k´odu. D´ıky tomuto nedostatku se mus´ı pouˇz´ıt speci´aln´ı rozhran´ı a to Java Native Interface (JNI), kter´e vol´ a nativn´ı k´ od z programovac´ıho jazyka Java. Velkou nev´ yhodou pouˇzit´ı JNI je to, ˇze samotn´ y program se potom st´av´a nepˇrenositeln´ ym (platformovˇe z´ avisl´ ym). Avˇsak je to jedin´e moˇzn´e ˇreˇsen´ı, jak ps´at procesorov´e benchmarky v jazyce Java. 3.2.1
Grafick´ e rozhran´ı aplikace
Po spuˇstˇen´ı aplikace se objev´ı z´ akladn´ı grafick´e rozhran´ı. Pomoc´ı tohoto rozhran´ı se ovl´ ad´ a cel´a aplikace.
Obr´ azek 3.1: Grafick´e rozhran´ı Testov´an´ı se spust´ı stisknut´ım tlaˇc´ıtka Spusteni testu. Po stisknut´ı tohoto tlaˇc´ıtka se rozbˇehne postupnˇe vˇsech pˇet test˚ u. Postup prov´adˇen´ı jednotliv´ ych test˚ u lze sledovat v odpov´ıdaj´ıc´ıch progress barech. V posledn´ım progress baru se zobrazuje celkov´ y pr˚ ubˇeh testov´an´ı. Log window Log window slouˇz´ı k zobrazov´ an´ı podrobnost´ı o tom jak jednotliv´e testy pˇresnˇe prob´ıhaj´ı. Jsou zde vidˇet informace jako napˇriklad, ˇze dan´ y test zapoˇcal, vytvoˇren´ı potˇrebn´ ych vl´ aken
´ KAPITOLA 3. BENCHMARKY A JEJICH VYSLEDKY
56
k pr˚ ubˇehu dan´eho testu, v´ ysledn´e ˇcasy jednotliv´ ych vl´aken a celkov´ y ˇcasov´ y v´ ysledek testu. Takto se zde zobrazuj´ı informace postupnˇe pro vˇsech pˇet test˚ u. Info window Info window slouˇz´ı k zobrazen´ı z´ akladn´ıch informac´ı o dan´em PC, na kter´em je aplikace spouˇstˇena. Obsahuje tyto u ´daje: • verze operaˇcn´ıho syst´emu • typ procesoru • frekvence procesoru, poˇcet dostupn´ ych jader procesoru • velikost operaˇcn´ı pamˇeti CPU and Memory window Toto okno zobrazuje kaˇzdou vteˇrinu aktualizovan´e hodnoty vyuˇzit´ı procesoru a hodnoty voln´e a vyuˇzit´e operaˇcn´ı pamˇeti. Hodnoty jsou uv´adˇeny v procentech. 3.2.2
Jednotliv´ e testy
Benchmark obsahuje pˇet test˚ u. Prvn´ı ˇctyˇri z nich jsou zamˇeˇreny na v´ıcej´adrov´e procesory, jelikoˇz jsou naps´ any tak, ˇze po spuˇstˇen´ı testu se zjist´ı poˇcet dostupn´ ych jader procesoru a podle toho se vytvoˇr´ı potˇrebn´ y poˇcet vl´aken, kter´a budou dan´ y test prov´adˇet. Testy jsou navrhnuty zp˚ usobem, ˇze kaˇzd´ y pr˚ ubˇeh testu je opakov´an s urˇcit´ ym poˇctem iterac´ı. Takˇze pokud je procesor v´ıcej´ adrov´ y a t´ım p´ adem vznikne v´ıce vl´aken, tak kaˇzd´e z vl´aken prov´ad´ı urˇcit´ y poˇcet iterac´ı. P´ at´ y z test˚ u je zamˇeˇren na pr´aci s pamˇet´ı. Prvn´ı test - PI Test ve kter´em je poˇc´ıt´ an´ı ˇc´ıslo PI na 10000 desetinn´ ych m´ıst pomoc´ı Machinovy formule. Druh´ y test - QuickSort Test ve kter´em je pomoc´ı QuickSort algoritmu seˇrazov´ano pole 500000 ˇc´ısel. Tˇ ret´ı test - Eratosthenovo s´ıto Test ve kter´em je spuˇstˇen algoritmus Eratosthenovo s´ıto na pole ˇc´ısel o velikosti 10000000. ˇ Ctvrt´ y test - Floating point Test ve kter´em prov´ adˇeno n´ asoben´ı matic s floating point ˇc´ısly. Matice jsou o velikosti [500][499], [499][500]. P´ at´ y test - Cache Jde o test, kter´ y uˇz nen´ı zamˇeˇren na v´ıcej´adrovost procesor˚ u, ale na pr´aci s cache pamˇetmi. V´ ykonnost jak´ehokoliv procesoru v testu, kter´ y testuje pamˇeˇtov´ y syst´em procesoru je silnˇe z´avisl´ y na dvou faktorech: • velikost jednotliv´ ych u ´rovn´ı cache pamˇeti procesoru
´ KAPITOLA 3. BENCHMARKY A JEJICH VYSLEDKY
57
• organizace a speci´ aln´ı architektury syst´emu cache pamˇet´ı, kter´e se m˚ uˇzou dost liˇsit u nˇekter´ ych procesor˚ u Velmi d˚ uleˇzit´e je potom porozumˇen´ı z´akladn´ımu principu fungov´an´ı cache pamˇet´ı, aby testov´ an´ı bylo efektivn´ı. Dost velkou roli zde hraje tak´e zp˚ usob pr´ace pˇrekladaˇce, kter´ y m˚ uˇze velmi silnˇe ovlivnit dosaˇzen´e v´ ysledky. Benchmark je zaloˇzen na opakovan´ ych pˇr´ıstupech k dat˚ um v pamˇeti pˇri r˚ uzn´ ych d´elk´ ach naˇc´ıtan´eho vektoru. Coˇz znamen´ a, ˇze se naˇc´ıtaj´ı z pamˇeti data o r˚ uzn´e d´elce v nˇekolik iterac´ıch, kde v kaˇzd´e iteraci se naˇc´ıt´ a vektor dat o r˚ uzn´e d´elce. Podle zp˚ usobu pr´ ace benchmarku se d´a oˇcek´avat, ˇze ˇc´ım vˇetˇs´ı vektory dat bude procesor naˇc´ıtat ˇc´ı ukl´adat z pamˇeti, t´ım v´ıce se zde uplatn´ı vˇetˇs´ı velikost cache pamˇeti. Naopak menˇs´ı rozd´ıly mezi v´ ykonnostmi procesor˚ u bude u mal´ ych vektor˚ u dat, kde bude rozd´ıl ve velikosti cache pamˇeti m´enˇe rozhoduj´ıc´ı. 3.2.3 3.2.3.1
V´ ysledky test˚ u V´ ysledky test˚ u na v´ıcej´ adrovost
U prvn´ıch ˇctyˇr test˚ u je v´ ysledkem ˇcas, za kter´ y se dan´ y test provede. V´ ysledky jsou tedy zobrazov´ any ve formˇe grafu. Pokud aplikace zjist´ı, ˇze procesor na kter´em byl benchmark aktu´alnˇe spuˇstˇen jeˇstˇe nen´ı v datab´azi, tak v´ ysledek tohoto procesoru se zanese do datab´ aze a pozdˇeji se bude ve v´ ysledn´em grafu tak´e zobrazovat. T´ım p´adem vznik´a urˇcit´a datab´ aze v´ ysledk˚ u test˚ u.
Obr´azek 3.2: V´ ysledn´ y graf
Pro kaˇzd´ y otestovan´ y procesor se zobrazuj´ı ˇctyˇri v´ ysledky pro kaˇzd´ y z test˚ u. Aktu´alnˇe testovan´ y procesor je pod n´ azvem Yours (v horn´ı ˇc´asti grafu je zobrazena specifikace mˇeˇren´eho CPU). Tlaˇc´ıtko export umoˇzn ˇuje export grafu do form´atu pdf.
58
´ KAPITOLA 3. BENCHMARKY A JEJICH VYSLEDKY
V pr˚ ubˇehu testov´ an´ı na r˚ uzn´ ych procesorech jsem vyuˇzil moˇznosti umˇele regulovat poˇcet vytvoˇren´ ych vl´ aken zpracov´ avaj´ıc´ıch v´ ypoˇcty v benchmarku. To znamen´a, ˇze jsem pro procesor, kter´ y je dvouj´ adrov´ y, umˇele vytvoˇril jin´ y poˇcet vl´aken. Za norm´aln´ıch okolnost´ı aplikace vytvoˇr´ı poˇcet vl´ aken podle toho, kolik m´ a dan´ y procesor jader. T´ımto zp˚ usobem jsem otestoval ˇctyˇri r˚ uznˇe v´ ykonn´e procesory. Benchmark byl na tˇechto procesorech spuˇstˇen s jedn´ım aˇz ˇctyˇrmi vl´akny.
Obr´ azek 3.3: Graf pro r˚ uzn´e poˇcty vl´aken Na obr´azku si lze povˇsimnout nˇekolika zaj´ımav´ ych fakt˚ u: • samozˇrejmˇe v´ıcej´ adrov´e procesory (2 a v´ıce) dosahuj´ı nejlepˇs´ıch v´ ysledk˚ u ve chv´ıli, kdy se poˇcet vl´ aken rovn´ a re´ aln´emu poˇctu jeho jader • pokud je poˇcet vl´ aken u v´ıcej´ adrov´eho procesoru vyˇsˇs´ı neˇz jeho re´aln´ y poˇcet jader, tak doch´az´ı k poklesu v´ ykonnosti - d´ a se ˇr´ıct, ˇze pokles je u ´mˇern´ y poˇctu vl´aken (pro ˇctyˇri vl´akna je to o nˇeco pomalejˇs´ı neˇz pro tˇri, pro pˇet vl´aken o nˇeco pomalejˇs´ı neˇz pro ˇctyˇri, atd.) , avˇsak nen´ı to pravidlem (napˇr´ıklad tˇri vl´akna nemus´ı b´ yt rychlejˇs´ı neˇz ˇctyˇri) • jednoj´adrov´e procesory dosahuj´ı lepˇs´ıch v´ ysledk˚ u s rostouc´ım poˇctem vl´aken (ne neomezenˇe). Je to d´ano t´ım, ˇze kaˇzd´e vl´ akno pot´e zpracov´av´a menˇs´ı poˇcet iterac´ı • opravdu k z´ asadn´ımu propadu v´ ykonnosti doch´az´ı, pokud je vytvoˇreno m´enˇe vl´aken neˇz je re´aln´ y poˇcet jader procesoru, coˇz se ale d´a vˇseobecnˇe pˇredpokl´adat, neboˇt nen´ı vyuˇzit pln´ y potenci´ al procesoru • z v´ ysledk˚ u r˚ uzn´ ych procesor˚ u je zˇrejm´e, ˇze daleko v´ıce ovlivˇ nuje v´ ykonnost jednotliv´ ych procesor˚ u v´ıcej´ adrovost neˇz jejich frekvence, coˇz je dan´e zamˇeˇren´ım samotn´e aplikace
´ KAPITOLA 3. BENCHMARKY A JEJICH VYSLEDKY
59
• d´ıky tomu, ˇze data, kter´ a se pouˇz´ıvaj´ı pˇri v´ ypoˇctech, jsou pro dneˇsn´ı poˇc´ıtaˇce pamˇeˇtovˇe nen´ aroˇcn´e, je zˇrejm´e, ˇze velikost pamˇeti procesor˚ u nen´ı v´ yznamn´a pro jejich v´ ysledky • v´ ysledky jednotliv´ ych procesor˚ u prakticky odpov´ıdaj´ı teoretick´ ym pˇredpoklad˚ um pro jejich v´ ykonnost z hlediska jejich specifikace 3.2.3.2
V´ ysledek testu cache pamˇ et´ı
V´ ysledkem tohoto testu je tabulka ve kter´e jde vidˇet pr˚ ubˇeh testov´an´ı a vypoˇcten´e hodnoty pˇrenesen´ ych MB/s pro jednotliv´e velikosti alokovan´e pamˇeti. Vˇzdy je uvedeno jak velk´a pamˇeˇt ˇ s floating point (s dvojitou ˇci byla alokov´ ana a pot´e v´ ysledky pro jednotliv´e operace bud jednoduchou pˇresnost´ı) nebo pro integer. D´ale je zde uveden specifikace CPU, ˇcas zaˇc´atku a konce testu a tak´e v´ ypoˇcet MIPS pro integer operace pro jednotliv´e velikosti alokovan´e pamˇeti.
Obr´ azek 3.4: V´ ysledek cache testu
3.2.3.3
CPU usage graf
Jde o voliteln´ y graf, kter´ y se d´ a zapnout z hlavn´ıho menu aplikace. V tomto grafu se v re´aln´em ˇcase zobrazuje vyuˇzit´ı procesoru v procentech. Samotn´ y graf dost zatˇeˇzuje procesor a je tedy sp´ıˇse jen pom˚ uckou pro lepˇs´ı zobrazen´ı z´atˇeˇze procesoru v pr˚ ubˇehu testov´an´ı.
´ KAPITOLA 3. BENCHMARKY A JEJICH VYSLEDKY
60
Obr´ azek 3.5: CPU usage graf
3.2.4
Benchmarky v´ıcej´ adrov´ ych procesor˚ u
Prvnˇe se mus´ı ˇr´ıct, ˇze testov´ an´ı v´ıcej´ adrov´ ych procesor˚ u je velmi podobn´e psan´ı benchmark˚ u pro jednoj´adrov´e procesory, avˇsak v nˇekter´ ych ohledech je mnohem komplexnˇejˇs´ı. Psan´ı takov´eho benchmarku se ˇr´ıd´ı nˇekolika z´ akladn´ımi z´ asadami: • samotn´ y benchmark mus´ı b´ yt multivl´aknov´a aplikace, pokud by se jednalo o jednovl´aknov´ y program, tak se d´ıky zv´ yˇsen´ı poˇctu jader neprojev´ı v´ ykonnost procesoru v benchmarku • pokud je aplikace v´ıcevl´ aknov´ a, tak se m˚ uˇze jednat o dva zp˚ usoby toho, co budou j´adra ˇ v kaˇzd´em vl´ zpracov´avat - bud aknu pro kaˇzd´e j´adro pobˇeˇz´ı stejn´a ˇcinnost a nebo kaˇzd´e j´adro bude prov´ adˇet nˇeco jin´eho • v´ ykonnost v´ıcej´ adrov´eho procesoru neroste line´arnˇe s poˇctem jader, n´ ybrˇz je dosti z´avisl´a na tom jak je benchmark napsan´ y 3.2.4.1
Teorie v´ıcej´ adrov´ ych benchmark˚ u
Pro oˇcek´avan´ y v´ ystup benchmarku je velice uˇziteˇcn´e zn´at to jak bude v´ıcevl´aknov´a aplikace zpracov´av´ana pouze jedn´ım j´ adrem procesoru. K dosaˇzen´ı takov´eho v´ ysledku se pouˇzije jednoduch´ y postup, kdy operaˇcn´ımu syst´emu dovol´ıme pracovat pouze s jedn´ım j´adrem z procesoru. U operaˇcn´ıho syst´emu Microsoft Windows staˇc´ı zapsat do BOOT.INI souboru parametr /NUMPROC=1, u operaˇcn´ıho syst´emu Linux se provede naˇcten´ı syst´emu s boot parametrem maxcpus=1. Druhou variantou, kterou je vyuˇzita i u demonstraˇcn´ıho benchmarku je moˇznost nevytv´aˇret poˇcet vl´ aken podle dostupn´ ych jader procesoru, n´ ybrˇz manu´alnˇe urˇcit, ˇze bude vytvoˇreno pouze jedno.
´ KAPITOLA 3. BENCHMARKY A JEJICH VYSLEDKY
61
Vyuˇ zit´ı Ahmdalova z´ akona pro v´ ypoˇ cet v´ ysledk˚ u pro 2 aˇ z N j´ adrov´ y procesor Princip v´ ypoˇctu spoˇc´ıv´ a v tom, ˇze doba v´ ypoˇctu na jednom j´adru bude st´ale stejn´a i se stoupaj´ıc´ım poˇctem dalˇs´ıch jader, t´ım p´adem se doba bˇehu programu pro dalˇs´ı j´adra bude rovnat dobˇe, jakoby operace prov´ adˇelo pouze jedno j´adro vydˇelen´e poˇctem vl´aken (jader). V podstatˇe se tedy jedn´ a o upraven´ y Ahmdal˚ uv z´akon, kter´ y bude vypadat n´asledovnˇe: Tpara = {(1 − P ) + P/N }Tserial • N - poˇcet jader • P - ˇcas str´ aveny v paraleln´ım prov´adˇen´ı k´odu • 1-P - ˇcas pro s´eriov´e zpracov´ an´ı k´odu • Tpara - ˇcas paraleln´ıho bˇehu programu • Tserial - ˇcas s´eriov´eho bˇehu programu Samozˇrejmˇe tento vzorec by platil pro ide´aln´ı situaci, re´alnˇe se d´a oˇcek´avat zrychlen´ı pˇriblˇznˇe: S = Tserial /Tpara Na n´asleduj´ıc´ım obr´ azku je uk´ az´ ano pˇredpokl´adan´e chov´an´ı zrychlen´ı bˇehu programu pˇri zvyˇsov´an´ı poˇctu jader. Jsou zde zahrnuty tak´e r˚ uzn´e u ´rovnˇe procentu´aln´ıho zastoupen´ı s´eriovˇe zpracov´avan´e ˇc´ asti programu.
Obr´ azek 3.6: z´ avislost urychlen´ı bˇehu benchmarku na poˇctu jader procesoru
62
´ KAPITOLA 3. BENCHMARKY A JEJICH VYSLEDKY
Jak je tedy vidˇet z v´ yˇse zm´ınˇen´ ych z´ akonitost´ı na v´ ykonu procesoru se nejv´ıce podep´ıˇse to jak´ ym ˇ ım m´enˇe s´eriovˇe zpracov´avan´eho k´odu bude benchmark zp˚ usobem bude benchmark navrhnut. C´ obsahovat, t´ım v´ıce bude jeho zpracov´ an´ı na v´ıcej´adrov´em procesoru efektivn´ı. Z´akladem je tedy dobr´a optimalizace k´ odu benchmarku pro v´ıcej´adrov´e procesory. 3.2.5
Benchmarky pro pr´ aci s cache pamˇ et´ı
Obr´ azek 3.7: V´ ysledek cache testu
Program pracuje tak, ˇze v cyklech alokuje poˇzadovanou velikost pamˇeti, nad kterou se pak v prov´ad´ı pomoc´ı inline assembleru r˚ uzn´e operace viz. obr´azek. Jedn´a se jmenovitˇe o operace suma uloˇzen´a do registru, suma uloˇzen´ a do pamˇeti a pamˇeˇt do pamˇeti. U jednotliv´ ych operac´ı se mˇeˇr´ı ˇcas pro floating point jednoduch´e ˇci dvoj´ı pˇresnosti a interger, z kter´eho se n´aslednˇe vypoˇc´ıt´a rychlost pamˇeti. N´ aslednˇe se pak jeˇstˇe vypoˇc´ıtav´a u interger operac´ı hodnoty MIPS. Pokud vyjdeme z v´ ysledku pro procesor z tohoto v´ ystupu (obr´azku), tak jde velmi dobˇre vidˇet omezen´ı velikost´ı L2 cache pamˇeti. Jelikoˇz testovan´ y procesor m´a L2 cache pamˇeˇt o velikosti 2MB, tak jde vidˇet, ˇze pˇrenesen´e MB/s i poˇcet proveden´ ych integer operac´ı za sekundu rapidnˇe kles´a pot´e, co je alokov´ ana vˇetˇs´ı velikost pamˇeti neˇz 2048 KB. Je to z toho d˚ uvodu, ˇze pˇri 4096 ˇ KB se uˇz cel´a alokovan´ a pamˇet nevejde pˇr´ımo do cache procesoru a mus´ı se pouˇz´ıt i operaˇcn´ı pamˇeˇt, kter´a je daleko pomalejˇs´ı.
´ ER ˇ KAPITOLA 4. ZAV
63
4 Z´ avˇ er Prac´ı na m´e bakal´ aˇrsk´e pr´ aci se mi podaˇrilo setˇr´ıdit a popsat vˇetˇsinu procesor˚ u, kter´e byly pˇredmˇetem zad´ an´ı. Popsal jsem jejich rysy a tak´e ty nejd˚ uleˇzitˇejˇs´ı technologie, kter´e jsou v tˇechto procesorech pouˇz´ıv´ any (kapitola 1). V dalˇs´ı ˇc´ asti pr´ ace jsem sepsal informace o procesorech, kter´e jsou dnes aktu´aln´ı. D´ale se zde pr´ace vˇenuje soupisu zn´ am´ ych informac´ı o procesorech, kter´e jsou do budoucna pl´anov´ any. Objasnil jsem technologie a architektury, na kter´ ych tyto procesory budou zaloˇzeny, a popsal zde jejich z´ akladn´ı vlastnosti (kapitola 2). D´ale se pr´ ace zab´ yv´ a benchmarky (kapitola 3), kde jsou pops´any jednotliv´e typy zpracovan´ ych benchmark˚ u a zp˚ usoby toho jak tyto benchmarky pracuj´ı. Tak´e jsou zde zm´ınˇeny zp˚ usoby mˇeˇren´ı v´ ysledk˚ u jednotliv´ ych benchmark˚ u a uk´azka toho, jak se benchmarky programuj´ı v programovac´ım jazyce Java. Projekt jako celek pomohl k z´ akladn´ımu n´ahledu do architektur, kter´e se pouˇz´ıvaj´ı v dneˇsn´ıch procesorech, a tak´e jako n´ ahled do architektur, kter´e se teprve uplatn´ı v pl´anovan´ ych procesorech. Pˇrispˇel tak´e k pochopen´ı princip˚ u psan´ı benchmark˚ u, k tomu jak benchmarky funguj´ı a jak se zpracov´ avaj´ı jejich v´ ysledky. V pr˚ ubˇehu tvorby pr´ace jsem narazil na mnoho zaj´ımav´ ych vlastnost´ı modern´ıch architektur, kter´e jsou podnˇetem pro dalˇs´ı studium, aˇz se tyto architektury objev´ı v praxi.
64
´ ER ˇ KAPITOLA 4. ZAV
KAPITOLA 5. SEZNAM LITERATURY
65
5 Seznam literatury [1] Amd: Still in the game. http://www.anandtech.com/cpuchipsets/showdoc.aspx?i=3050&p=1. [2] Cell (microprocessor). http://en.wikipedia.org/wiki/Cell_%28microprocessor%29. [3] Clearing up the confusion over intel‘s larrabee, part ii. http://arstechnica.com/news.ars/post/20070604-clearing-up-the-confusio%nover-intels-larrabee-part-ii.html—. [4] A closer look to amd´s cpu/gpu fusion. http://arstechnica.com/news.ars/post/20061119-8250.html. [5] Ibm unveils power6 microprocessor deatils. http://arstechnica.com/news.ars/post/20070212-8823.html. [6] Inside amd‘s next-generation mobile architecture: Griffin and puma. http://arstechnica.com/articles/paedia/cpu/inside-amds-next-generation%mobile-architecture-griffin-and-puma.ars/1—. [7] Inside the xbox 360, part ii: the xenon cpu. http://arstechnica.com/articles/paedia/cpu/xbox360-2.ars/1. [8] Intel shows off tukwila, first 2 billion transistor cpu. http://arstechnica.com/news.ars/post/20080207-intel-shows-off-tukwila-%first2-billion-transistor-cpu.html—. [9] Intel’s atom architecture: The journey begins. http://www.anandtech.com/cpuchipsets/intel/showdoc.aspx?i=3276&p=1. [10] Isaiah revealed: Via’s new low-power architecture. http://arstechnica.com/articles/paedia/cpu/via-cpu-isaiah.ars/1. [11] Powerpc overview. http://www.pctechguide.com/25AMD.htm. [12] Via cpu overview. http://www.cpushack.net/VIA.html. [13] Amd64 architecture programmer’s manual, volume 1: Application programming. Number 24592. Advance Micro Devices, 2008. R 64 and ia-32 architectures software developer’s manual, volume 1: Basic architec[14] Intel ture. Number 253665-017. Intel Corporation, 2008.
66
KAPITOLA 5. SEZNAM LITERATURY
ˇ ´ILOHA A. VYMEZEN´I POUZIT ˇ YCH ´ ˚ PR POJMU
67
A Vymezen´ı pouˇ zit´ ych pojm˚ u A.1
V´ yrobn´ı proces procesor˚ u
Procesor je vyroben jako polovodiˇcov´a souˇc´astka z kˇrem´ıkov´e destiˇcky s pˇr´ımˇes´ı. Postup v´ yroby je takov´ y, ˇze krystal kˇrem´ıku se na urˇcit´ ych m´ıstech oz´aˇr´ı ultrafialov´ ym z´aˇren´ım a tak se toto m´ısto stane vodiv´ ym. Pot´e se na nˇej integruj´ı tranzistory. Tranzistory jsou na sobˇe vysoce nahuˇstˇeny, t´ım p´ adem se zkracuje dr´aha, kterou mus´ı elektron uletˇet. V´ yrobn´ı proces se oznaˇcuje podle toho jak´ y nejmenˇs´ı prvek procesoru je vyroben, napˇr´ıklad tedy 65nm v´ yrobn´ı proces.
A.2
J´ adro procesoru
Definice j´ adra procesoru se liˇs´ı podle toho, zda-li pak se jedn´a o jednoj´adrov´e ˇreˇsen´ı, ˇci v´ıcej´adrov´ y procesor. • jednoj´ adrov´e ˇreˇsen´ı - zde se j´ adrem mysl´ı vlastnˇe s´am cel´ y procesor • v´ıcej´ adrov´e ˇreˇsen´ı - zde je j´ adrem myˇslena jedna fyzick´a procesorov´a jednotka, kter´a pokud je jich v samotn´em procesoru v´ıce, tak tvoˇr´ı samotn´ y v´ıcej´adrov´ y procesor. Tyto jednotky jsou propojeny pomoc´ı r˚ uzn´ ych technologi´ı, jejichˇz implementace z´aleˇz´ı na v´ yrobci procesoru.
A.3
Registry procesoru
Registr je mal´e pamˇeˇtov´e u ´loˇziˇstˇe uvnitˇr procesoru, k jehoˇz obsahu se m˚ uˇze procesor velice rychle dostat. Vˇetˇsina modern´ıch procesor˚ u pracuje s registry tak, ˇze se data pˇresouvaj´ı z hlavn´ı pamˇeti do jednotliv´ ych registr˚ u a pot´e je procesor zpracuje a navr´at´ı je zpˇet do hlavn´ı pamˇeti. Tento zp˚ usob zpracov´ an´ı se naz´ yv´a load-store architektura.
A.4
Instrukce procesoru
Instrukce je jedna operace procesoru definov´ana v instrukˇcn´ı sadˇe procesoru. Dneˇsn´ı procesory podporuj´ı mnoho r˚ uzn´ ych instrukˇcn´ıch sad, napˇr´ıklad x86, x86-64, atd.
A.5
Cache pamˇ eˇ t a jej´ı u ´ rovnˇ e
Jsou to mal´e pamˇeti, kter´e se nach´ azej´ı velmi bl´ızko procesoru. K dat˚ um v tˇechto pamˇetech se m˚ uˇze procesor dostat daleko rychleji neˇz k dat˚ um z hlavn´ı pamˇeti. Cache pamˇeˇt m´a nˇekolik hierarchicky uspoˇr´ adan´ ych u ´rovn´ı. U dneˇsn´ıch procesor˚ u to b´ yvaj´ı nejˇcastˇeji tˇri u ´rovnˇe a to L1 cache (nejmenˇs´ı a nejbl´ıˇze procesoru), L2 cache a L3 cache (nejvˇetˇs´ı a nejd´ale od procesoru)
A.6
FSB sbˇ ernice a jej´ı frekvence
FSB je fyzick´ a obousmˇern´ a datov´ a sbˇernice, kter´a slouˇz´ı pro pˇrenos informac´ı mezi procesorem a northbridgem.
A.7
Procesorov´ a pipeline
Pipelining je technika pro zpracov´ av´ an´ı v´ıce instrukc´ı najednou tak, ˇze se v´ıce instrukc´ı pˇrekr´ yv´ a pˇri zpracov´ an´ı. Pipeline je rozdˇelena do stupˇ n˚ u, tyto stupnˇe jsou propojeny za sebou tak, ˇze
ˇ ´ILOHA B. POSTUP PSAN´I BENCHMARKU ˚ POMOC´I PROGRAMOVAC´IHO JAZYKA JAVA 68PR v´ ystup jednoho stupnˇe je vstupem n´ asleduj´ıc´ıho stupnˇe. Technologie pipeliningu nesniˇzuje dobu vykon´av´an´ı jedn´e instrukce, n´ ybrˇz zvyˇsuje poˇcet instrukc´ı, kter´e mohou proj´ıt procesorem.
B Postup psan´ı benchmark˚ u pomoc´ı programovac´ıho jazyka Java Abychom mohly volat nativn´ı k´ od, mus´ı se pˇri psan´ı postupovat n´asleduj´ıc´ım zp˚ usobem: 1. naps´an´ı programu v Javˇe, ve kter´em se deklaruj´ı nativn´ı metody, kter´e se pozdˇeji budou volat v benchmarku 2. provede se kompilace za u ´ˇcelem vytvoˇren´ı class souboru pomoc´ı javac utility 3. vytvoˇr´ı se hlaviˇckov´ y soubor v jazyce C++, tento soubor se vytvoˇr´ı z Java class souboru za pouˇzit´ı javah utility 4. posledn´ım krokem je vytvoˇren´ı DLL knihovny, v jej´ımˇz tˇele je k´od vytvoˇren´ y v programovac´ım jazyce C++, kter´ y obsahuje samotn´ y nativn´ı k´od Jako pˇr´ıklad vyuˇzit´ı psan´ı programu za pomoci Java Native Interface (JNI) m˚ uˇze poslouˇzit prvn´ı uk´azkov´ y program, kter´ y zjiˇsˇtuje informace o procesoru pomoc´ı instrukce CPUID. Program v Javˇe, kde se deklaruj´ı nativn´ı metody vypad´a napˇr´ıklad takto: class cpuInfo{ static{ try{ System.loadLibrary("cpuinfodll"); } catch(UnsatisfiedLinkError ule){ System.out.println(ule); } } public public public public public
static static static static static
native native native native native
int ziskejRychlostCPU(); String ziskejTypCPU(); int ziskejRodinuCPU(); int ziskejModelCPU(); int ziskejSteppingCPU();
public static void main(String args[]) { System.out.println("Vypis informaci o procesoru"); System.out.println("Frekvence procesoru: " + ziskejRychlostCPU()); System.out.println("Typ procesoru: " + ziskejTypCPU()); System.out.println("Rodina procesoru: " + ziskejRodinuCPU()); System.out.println("Model procesoru: " + ziskejModelCPU()); System.out.println("Stepping procesoru: " + ziskejSteppingCPU()); } } K tomuto programu v Javˇe se pot´e pˇrid´ a DLL knihovna, kter´a zajiˇsˇtuje vol´an´ı nativn´ıho k´odu. ˇ ast t´eto knihovny vypad´ C´ a napˇr´ıklad takto:
ˇ ´ILOHA C. OBSAH PRILO ˇ ˇ EHO ´ PR ZEN CD
69
JNIEXPORT jint JNICALL Java_cpuInfo_ziskejModelCPU(JNIEnv *, jclass) { int retVal; _asm { mov eax, 1 cpuid mov retVal, eax } return ((retVal >> 4 ) & 0x0000000f); } K vytvoˇren´ı t´eto DLL knihovny je samozˇrejmˇe potˇreba jeˇstˇe hlaviˇckov´ y soubor, avˇsak ten je automaticky generov´ an. T´ım p´ adem nem´a smysl se j´ım d´ale zab´ yvat.
C Obsah pˇ riloˇ zen´ eho CD
Obr´ azek C.1: adres´aˇrov´a struktura pˇriloˇzen´eho CD Sloˇzka pr´ ace obsahuje text samotn´e bakal´aˇrsk´e pr´ace ve form´atu pdf a jej´ı zdrojov´ y k´od. Sloˇzka programy obsahuje naimplementovan´e benchmarky ve spustiteln´e podobˇe a jejich zdrojov´e k´ody, d´ale tak´e obsahuje soubor readme.txt, kter´ y popisuje jak spustit jednotliv´e benchmarky.