AMD ir ARM procesoriai. - KTU
Download
Report
Transcript AMD ir ARM procesoriai. - KTU
KOMPIUTERIŲ
ARCHITEKTŪRA ir
OPERACINĖS SISTEMOS
Doc. Stasys Maciulevičius
Kompiuterių katedra
[email protected]
1
Ankstesnės paskaitos santrauka
Procesoriai
Intel procesorių raida
64 bitai ir keli branduoliai
Naujieji Intel procesoriai
2013
Sandy Bridge
Ivy Bridge
Haswell
Atom
S.Maciulevičius
2
Šios paskaitos turinys
AMD procesoriai
AMD K10 architektūra
AMD Bulldozer
AMD - paspartinti skaičiavimai
Idėja
AMD Fusion
AMD Llano ir Trinity
x86 analogai
ARM procesoriai
2013
S.Maciulevičius
3
AMD procesoriai
AMD sąsajos su x86 architektūra siekia 1982
metus, kai su Intel buvo pasirašyta licencijavimo
sutartis. Tad pradžioje AMD gaminami procesoriai
buvo Intel procesorių analogai, tačiau mažesnės
kainos dėka sėkmingai konkuravo rinkoje.
Pirmuoju AMD suprojektuotu visiškai originalios
architektūros procesoriumi buvo K5 (1996) –
penktosios kartos procesorius, turėjęs x86
komandų sistemą, našumu prilygęs Intel Pentium,
tačiau techniniais sprendimais artimesnis Pentium
Pro, kadangi jis x86 komandas jau perkodavo į
RISC86 operacijas
2013
S.Maciulevičius
4
AMD procesoriai
Vėliau sekė procesoriai K6 (1997), Athlon (K7,
1999), Athlon XP (2001)
Aštuntajai kartai (K8) priklausę procesoriai
Opteron buvo pirmieji, palaikę 64 bitų
aritmetiką, turėję integruotą atminties
kontrolerį ir didelės spartos sąsają
HyperTransport (2003)
2005 m. buvo išleisti pirmieji dviejų branduolių
procesoriai Opteron (serveriams) ir Athlon 64
X2 (stalo kompiuteriams).
2013
S.Maciulevičius
5
AMD K10 architektūra
AMD K10 architektūra remiasi K8
architektūra, tačiau joje buvo padaryti
patobulinimai:
viename procesoriuje gali būti iki 12 branduolių
iš karto (viename sinchronizavimo cikle) išrenkami 32
baitai (256 bitų) iš L1 komandų kešo
naudojama 128 bitų vidinė duomenų magistralė;
ankstesniuose K8 architektūros procesoriuose ji buvo
64 bitų (tai kiek trukdė SSE komandoms, nes SSE
registrai (XMM) yra 128 bitų)
2013
S.Maciulevičius
6
AMD K10 architektūra
kristale kiekvienas branduolys turi savus L1 ir L2
kešus, be to, visi branduoliai naudojasi bendru L3
kešu
panaudotas išmanesnis atminties kontroleris (tiksliau
– du nepriklausomi), įgalinantis vienu metu kreiptis į
skirtingus (nebūtinai gretimus) 64 bitų žodžius
kiekvienas branduolys gali dirbti skirtingu dažniu
(Independent Dynamic Core Technology), be to,
nenaudojamos dalys automatiškai gali būti išjungtos
2013
S.Maciulevičius
7
AMD K10 architektūra
Šios architektūros procesoriuose realizuota
didelio pralaidumo magistralė HyperTransport
3.0, kuri gali užtikrinti 41,6 GB/s abiem
kryptimis 32 bitų režimu arba iki 10,4 GB/s viena
kryptimi 16 bitų režimu, o dažnis siekia 2,6 GHz
Tai buvo Sempron, Athlon II, Phenom X3/X4,
Turion II Dual-Core Mobile, 6 branduolių ir 6100
serijos Opteron procesoriai
2013
S.Maciulevičius
8
AMD Bulldozer
AMD naujos kartos (15h) mikroarchitektūros kodiniu pavadinimu
„Bulldozer" procesorius pristatė parodoje „CeBIT 2011“
Bulldozer procesoriai gaminami pagal 32 nm technologiją, jie
naudoja patobulintas energijos vartojimo priemones, palaiko
naująsias x86 komandas, turi specialias srautinių skaičiavimų
našumo didinimo priemones
Bulldozer platforma išnaudoja dinaminio procesorių našumo
didinimo technologijos (Turbo Core Dynamic Acceleration)
galimybes, o tai prireikus leis padidinti visų branduolių taktinį dažnį
500 MHz.
Slankaus kablelio skaičių įtaisas turi du 128 bitų konvejerius; kartu
jie gali vykdyti AVX 256 bitų komandas
2013
S.Maciulevičius
9
AMD Bulldozer
2013
S.Maciulevičius
10
AMD Bulldozer
Šioje struktūroje matome Bulldozer branduolį,
kuriame yra dvi sveikųjų skaičių dalys, todėl
sakoma, kad šis branduolys tarsi gali vykdyti dvi
gijas (atitinka Intel hipergijų mechanizmą)
Perkoduotos komandos nukreipiamos vykdymui į du
sveikųjų skaičių ir vieną slankaus kablelio skaičių
dispečerius
Slankaus kablelio skaičių įtaisas turi du konvejerius,
apdorojančius 128 bitų žodžius; kartu jie gali
vykdyti AVX 256 bitų komandas
2013
S.Maciulevičius
11
AMD Bulldozer
Aktyvių schemų
dalis įvairiuose
režimuose
Bulldozer
procesoriuje kur
kas mažesnė nei
ankstesniuose
AMD CPU
modeliuose:
Tai padeda
taupyti energiją
2013
S.Maciulevičius
12
AMD Interlagos
2011 m. tarptautinėje superkompiuterių
konferencijoje AMD pristatė naujausią
procesorių Interlagos (Bulldozer
architektūros pagrindu)
Interlagos turi net 16 branduolių ir palaiko 4
kanalų DDR3 atmintį; jis skirtas labai
našiems serveriams
Gaminami ir 8 branduolių, 2 kanalų
procesoriai “Valencia” (Opteron 4000 serija),
kurie skirti mažesniems HPC klasteriams
2013
S.Maciulevičius
13
AMD posūkis
Nuo Nehalem mikroarchitektūros įvedimo AMD ėmė
gerokai atsilikti našių procesorių srityje
Nors AMD inžinieriai pirmieji yra sumanę ir
panaudoję tokius dalykus, kaip 64 bitų x86
mikroarchitektūra, kelių branduolių procesoriai,
atminties kontrolerio integravimas procesoriuje
Manoma, kad AMD išgelbės naujoji idėja – kurti
specialius įtaisus skaičiavimams spartinti, kuriuos
jie pavadino APU (Accelerated Processing Units),
kai viename kristale apjungiami tradiciniai x86
branduoliai su našiu grafikos branduoliu
2013
S.Maciulevičius
14
AMD paspartinti skaičiavimai
Paspartinti skaičiavimai (Accelerated Computing)
yra karkasas, kuriame naujos techninės ir
programinės įrangos sąveika įgalins įgyvendinti
efektyviai naudojančių energiją, labai našių ir
pigių skaičiavimų įdėją
Paspartinti skaičiavimai reiškia, kad ateityje:
kompiuteriuose bus naudojami bendrosios paskirties ir
specializuoti procesoriai;
uždaviniui spręsti bus pasirenkamas procesorius, kuris
tai atliks optimaliai našumo, įvairialypės informacijos
apdorojimo, energetinio efektyvumo ir kainos požiūriu;
programinė įranga išnaudos geriausiai tinkančios tai
užduočiai techninės įrangos privalumus;
kūrėjai bus aprūpinti aukšto lygio priemonėmis
lygiagrečiosioms taikomosioms programoms rašyti.
2013
S.Maciulevičius
15
Lygiagretieji skaičiavimai ir Amdahl
dėsnis
Pagreitėjimas
Amdahl dėsnis
apibrėžia bendrojo
sistemos našumo
padidėjimą:
Nuoseklioji
dalis:
SN = 1/(Dn+(1-Dn)/N);
SN – bendrasis
sistemos našumas, N
– procesorių skaičius
sistemoje, Dn –
nuosekliųjų
skaičiavimų dalis
2013
Branduolių skaičius
S.Maciulevičius
16
AMD paspartinti skaičiavimai
Tradiciniai CPU sukurti bendrosios paskirties
užduotims apdoroti, populiarioms
taikomosioms programoms vykdyti. Pagal
prigimtį jie skirti nuosekliam (skaliariniam)
duomenų apdorojimui
Tuo tarpu GPU sukurti specializuotoms
užduotims (grafika, video), daugumai taikymų,
susijusių su vaizdų apdorojimu, tai yra,
lygiagrečiam duomenų apdorojimui
APU apjungia šiuos skirtingo tipo skaičiavimus į
vieną įtaisą
2013
S.Maciulevičius
17
CPU ir GPU funkcijų apjungimas
CPU
APU
GPU
Bendro
Nuoseklus
Video
pobūdžio
duomenų
užduotis
apdorojimas
Displėjus
Lygiagretus
Grafika
Bendro
pobūdžio
duomenų
apdorojimas
užduotis
2013
ATI
Stream
S.Maciulevičius
18
AMD paspartinti skaičiavimai
1985
1990
2000
2008
Pirmoji karta:
dažnis ir architektūra
Antroji karta:
Homogeniškos
daugelio
branduolių
sistemos
Trečioji karta:
heterogeniškos
daugelio branduolių
sistemos
Didesnis dažnis =
didesnis našumas
Didesnis
Geriausiai tinkanti
pralaidumas =
techninė įranga =
didesnis našumas didesnis našumas,
energetinis
efektyvumas ir
mažesnė kaina
2013
S.Maciulevičius
19
x86: paspartinti skaičiavimai
Pirmajai kartai būdingas vieno komandų srauto
procesorių kūrėjų siekis didinti darbo dažnį
Kartu buvo tobulinama ir procesorių
mikroarchitektūra, tačiau tie patobulinimai
buvo nukreipti tiek našumo didinimui, tiek ir
darbo dažnio didinimui
Tačiau pastangų sutelkimas dažnio didinimui
sąlygojo procesoriaus struktūros sudėtingumo,
tuo pačiu ir suvartojamos energijos, augimą
2013
S.Maciulevičius
20
x86: paspartinti skaičiavimai
Todėl šio amžiaus pradžioje didesnis dėmesys buvo
atkreiptas į lygiagretumo panaudojimą, viename
procesoriaus kristale realizuojant kelis vienodus
branduolius ir taip sudarant sąlygas užduočių pralaidumui
didinti. Technologijos laimėjimai leido didinti tokių
branduolių skaičių
Tačiau nuolat didėjant lygiagrečiųjų skaičiavimų
poreikiams tokios sistemos nebepajėgė tenkinti vartotojų
norų dėl dviejų priežasčių:
x86 branduolių skaičiaus didinimą riboja energijos
sąnaudos ir kaina;
lygiagrečiųjų skaičiavimų panaudojimas tokiose sistemose
nėra efektyvus dėl nuosekliųjų skaičiavimų dalies.
2013
S.Maciulevičius
21
AMD Fusion
Procesoriaus kristalas
Pirmasis žingsnis –
Fusion, kuriame
apjungti centrinis ir
grafikos procesoriai
DIMM
DIMM
CPU
L2 kešas
GPU
Buferiai
Kryžminis
komutatorius
Atminties
kontroleris
Hyper
Transport
Šiaurinis
tiltas
2013
S.Maciulevičius
22
AMD Fusion
Matome, kad x86 branduoliai (CPU) turi
bendrą L2 kešą (po 512 KB/branduoliui; be
to, kiekvienas branduolys turi L1 duomenų
ir komandų kešus), GPU – buferinę atmintį
apdorojamai informacijai laikyti
Abi šios dalys per kryžminį komutatorių
pasiekia bendrai naudojamą pagrindinę
atmintį (atminties kontroleris integruotas
procesoriaus kristale) ir likusią sistemos
dalį, tam naudojant sparčiąją
HyperTransport
2013
S.Maciulevičius
23
x86: paspartinti skaičiavimai
Pirmajai kartai būdingas vieno komandų srauto
procesorių kūrėjų siekis didinti darbo dažnį
Kartu buvo tobulinama ir procesorių
mikroarchitektūra, tačiau tie patobulinimai
buvo nukreipti tiek našumo didinimui, tiek ir
darbo dažnio didinimui
Tačiau pastangų sutelkimas dažnio didinimui
sąlygojo procesoriaus struktūros sudėtingumo,
tuo pačiu ir suvartojamos energijos, augimą
2013
S.Maciulevičius
24
AMD paspartinti skaičiavimai
AMD nori sukurti komandų sistemos
architektūrą, kuri nukreiptų užduoties
vykdymą turimai CPU ir GPU
aparatinei įrangai
Jei užduotį geriausiai tinka vykdyti
bendrosios paskirties x86 branduoliuose,
tai ji ten ir bus vykdoma
Jei užduotį geriausiai tinka vykdyti
dideliame skaičiuje lygiagrečių GPU
branduolių, ji ten ir bus vykdoma
2013
S.Maciulevičius
25
AMD paspartinti skaičiavimai
Šią idėją gerai iliustruoja toks pavyzdys
Buvo sprendžiamas veido aptikimo uždavinys.
Algoritmą sudaro nemažas žingsnių skaičius,
kuriuose įvairaus mastelio vaizde analizuojamos
tokios veido detalės, kaip akys, ausys, nosis ir
pan.
Pirmasis žingsnis gerai išlygiagretinamas, ir tam
puikiai tinka GPU (žr. pav.). GPU gerai pasireiškia
ir dar keliuose kituose pradiniuose žingsniuose.
Tačiau vėliau GPU našumas krinta ir jis dirba
lėčiau, nei paprastas CPU
2013
S.Maciulevičius
26
AMD paspartinti skaičiavimai
2013
S.Maciulevičius
27
AMD Llano
2011 m. vasarą AMD pristatė A-Series procesorius,
gaminamus naudojant 32 nm technologiją; jų
maks. galia (TDP) – 35 arba 45 W
Kristaluose integruoti DDR3 atminties ir grafikos
kontroleriai, palaikantys DirectX 11 (srautinių
procesorių skaičius nuo 240 iki 400)
Llano pavadinti procesoriai turi 2 arba 4
branduolius su 4 arba 2 МB L2 kešo, dirba nuo 1,4
iki 2,1 GHz dažniu
Procesoriai palaiko našumo didinimo technologiją
Turbo Core
2013
S.Maciulevičius
28
AMD Llano
Turbo Core efektyvumas APU Llano procesoriuje:
2013
S.Maciulevičius
29
AMD Llano
AMD didesnį dėmesį skiria grafikai:
2013
S.Maciulevičius
30
AMD Trinity
2011 m. vasarą AMD pristatė antrąją Llano kartą Trinity procesorius, gaminamus naudojant tą pačią
32 nm technologiją
Padidėjo kristalo plotas (iki 246 mm2) ir tranzistorių
skaičius (iki 1,3 mlrd)
Procesoriaus x86 branduoliai atitinka Bulldozer
branduolius ir dirba iki 3,8 GHz dažniu
Visiškai perdirbtas grafikos įtaisas, turintis 384
blokus (srautiniu procesorius), dirbantis 800 MHz
dažniu; jis palaiko DirectX 11 ir API OpenCL 1.1
2013
S.Maciulevičius
31
AMD Trinity
2013
S.Maciulevičius
32
Analogai
X86 komandų sistemą turinčius procesorius
gamina ir kitos firmos
VIA gamina procesorius, skirtus
nešiojamiems kompiuteriams. Naujausias
procesorius – Nano (7 FĮ, 1-2 GHz, 32 KB
L1 ir 1 MB L2)
Transmeta – VLIW tipo procesorius, taip pat
skirtus nešiojamiems kompiuteriams
2013
S.Maciulevičius
33
Transmetos Crusoe
Skirtas mobilioms sistemoms
Sava VLIW komandų sistema (4 komandos)
1 FPU, 2 ALU, 1 LSU, 1 BU
64 registrai
x86 komandų perkodavimas
Code Morphing Software
Patobulinta maitinimo valdymo metodika
2013
S.Maciulevičius
34
Transmetos Crusoe
128 bitų komandų grupė
(molekulė)
2013
FADD
ADD
LD
BRCC
FPU
ALU
LSU
BU
(Float
Point
Unit)
(Integer
ALU)
(Load-
(Branch
Unit)
Store
Unit)
S.Maciulevičius
35
Transmetos Crusoe
Komandų skirstymas
2013
S.Maciulevičius
36
Transmetos Crusoe 6000
2013
S.Maciulevičius
37
ARM procesoriai
ARM architektūros pradžia siekia praėjusio
amžiaus 9 dešimtmetį; ją sukūrė Acorn Computers
Ltd., tad santrumpa ARM kilo iš Acorn RISC
Machine
Dabar ARM procesorius kuria ir gamina Advanced
RISC Machines, Ltd.
ARM procesoriai priklauso 32 bitų RISC
mikroprocesorių šeimai
Jie plačiai naudojami buitinėje elektronikoje mobiliuosiuose telefonuose, multimedia
grotuvuose, skaičiuotuvuose ir asmeniniuose
pagalbikliuose (PDA - personal digital assistants)
2013
S.Maciulevičius
38
ARM procesoriai
ARM architektūra susiformavo stalo
kompiuteriams skirtuose procesoriuose,
po to ji persikėlė į buitinės technikos ir
pramonės įrenginių mikroschemas, o
šiandien vėl išeina į kompiuterių rinką,
kur ji naudojama planšetiniuose ir
internetiniuose kompiuteriuose
2013
S.Maciulevičius
39
ARM procesorių šeimos
2013
S.Maciulevičius
40
Taikomieji ARM procesoriai
Taikomieji (Application) procesoriai – tai
procesoriai, galintys vykdyti sudėtingas
operacines sistemas, pavyzdžiui, Linux,
Android/ Chrome, Microsoft Windows
(CE/Embedded) ir Symbian, naudoti
sudėtingas grafines vartotojo sąsajas
Šios klasės procesoriai turi integruotą
atminties dispečerį (MMU - Memory
Management Unit), kad būtų galima
tenkinti sudėtingų OS atminties
poreikius, naudoti įvairią trečiųjų šalių PĮ
2013
S.Maciulevičius
41
ARM procesoriai
Procesorių tarpe yra ir kelių branduolių
procesoriai, pvz., Cortex-A9 MPCore™,
Cortex-A5 MPCore ir ARM11MPCore
procesoriai, pasižymintys geru našumu
Tokie procesoriai gali būti naudojami
išmaniuosiuose mobiliuosiose
telefonuose, kompaktiškuose skaičiavimo
įtaisuose, namų multimedijos įtaisuose ir
net nedideliuose mažai energijos
naudojančiuose serveriuose
2013
S.Maciulevičius
42
ARM procesoriai
Čia matome
keturių
branduolių
Cortex
procesorių,
skirtą plačiam
įtaisų spektrui –
nuo mobiliųjų
įtaisų iki serverių
2013
S.Maciulevičius
43
ARM A15 MPCore
Pagrindiniais Cortex-A15 MPCore elementais yra:
slankiojo kablelio įtaisas, atliekantis operacijas
su įprasto ir dvigubo tikslumo skaičiais; čia
realizuota ir NEON išplėsta komandų sistema su
medijos ir signalų apdorojimo funkcijomis,
pridėti 64 ir 128 bitų registrai, atliekamos SIMD
operacijos su 8, 16 ir 32 bitų sveikaisiais
skaičiais bei 32 bitų slankiojo kablelio skaičiais;
sveikųjų skaičių ALU, kuriame formuojami 40
bitų fiziniai adresai, įgalinantys adresuoti iki
1 TB atminties (tačiau atskira gija naudoja 32
bitų adresą);
2013
S.Maciulevičius
44
ARM A15 MPCore
32 kB duomenų ir 32 kB komandų L1 kešai
kiekviename branduolyje, sukonstruoti
minimaliam vėlinimui ir energijos suvartojimui;
juose realizuotos duomenų skaidrumo
palaikymo priemonės kelių branduolių
aplinkoje, taip pat klaidų kontrolė ir korekcija
(ECC);
suderinamumo valdymo įtaisas (SCU – Snoop
Control Unit) atsakingas už sujungimų valdymą
ir arbitražą, mainus su L2 kešu ir pagrindine
atmintimi, kešo suderinamumą;
2013
S.Maciulevičius
45
ARM A15 MPCore
128 bitų AMBA 4 CoreLink CCI-400 sąsaja
užtikrina kelių Cortex-A15 MPCore procesorių
bendrą darbą, geriau išnaudojant kešus ir
supaprastinant taikomąją programinę įrangą
(įskaitant kompiuterinius žaidimus, serverius ir
tinklo programas), skirtą klasteriams,
sudarytiems iš vieno arba kelių branduolių
procesorių.
2013
S.Maciulevičius
46
ARM procesoriai
ARM procesoriaus Cortex-A15 MPCore
pagrindu yra išleidžiamos arba bus
išleistos SoC sistemos Samsung Exynos
5 5250, Texas Instruments OMAP5430 ir
OMAP5432, Nvidia Tegra 4 T40 ir T43 ir
kt.
2010 metais buvo parduota net 6 mlrd.
ARM architektūros procesorių
2013
S.Maciulevičius
47
ARM procesoriai
Iki šiol ARM procesoriai buvo 32 bitų,
tačiau 2012 m. pristatyta visiškai nauja
ARMv8 architektūros procesorių serija
Cortex-A50, kurią sudarys 64 bitų
Cortex-A53 bei Cortex-A57 procesoriai,
skirti išmaniesiems telefonams bei
planšetiniams kompiuteriams
2013
S.Maciulevičius
48
ARM procesoriai
64 bitų palaikymas svarbus tuo, kad ARM
galės pretenduoti ir į stalo kompiuterių
bei serverių rinkas
Žinoma, varžytis su Intel našių serverių
rinkose, kur naudojami Xeon procesoriai,
ARM negalės, tačiau į mažo galingumo ir
mikroserverių rinką, kur Xeon galia
nereikalinga, ji pretenduos. Čia jų
varžovu bus Atom S serijos procesoriai
2013
S.Maciulevičius
49
ARM procesoriai serveryje
Serverių gamintojai, aišku, tik
eksperimentuodami, jau siūlo
sprendimus su ARM procesoriais, kurie
tam tikrose veiklos sferose leidžia žymiai
sumažinti elektros energijos išlaidas
„Calxeda“ atstovai teigia, jog šis ARM
sprendimų gamintojas nemato problemų,
kurios neleistų naudoti ARM procesorių
serveriuose kartu su x86
2013
S.Maciulevičius
50
ARM procesoriai serveryje
Hibridiniuose serveriuose pagrindinis krūvis
teks x86 procesoriams, tuo tarpu ARM
procesoriams teks atlikti specifines užduotis,
kurios nereikalauja itin didelės galios
Kol kas tokios sistemos tik bandomos, tačiau
tikimasi, kad jau 2013 m. panašūs serveriai
pasirodys rinkoje
Žinoma, ARM procesorių plėtrą labai stabdo
suderinamos programinės įrangos trūkumas, be
to, ne visi ARM procesoriai palaiko 64 bitų
komandas
2013
S.Maciulevičius
51
ARM procesoriai serveryje
Savo ruožtu, kompanija Calxeda mano, jog
operacinė sistema Linux gana lengvai galėtų
padėti „susidraugauti“ ARM ir x86 architektūros
procesoriams
2012 metų pabaigoje ARM pristatė ARMv8
architektūrą su 64 bitų komandų palaikymu,
tuo tarpu masinė tokių sprendimų gamyba
prasidėjo vėliau
Taigi iki to laiko vargu, ar galima kalbėti apie
platų ARM procesorių naudojimą serverių
segmente
2013
S.Maciulevičius
52
ARM procesoriai serveryje
Ką tik pasirodė informacija apie tai, kad
Calxeda sukonstravo serverio plokštę,
kurioje yra 4 Cortex-A9 SoC (ARM
architektūros), 4 DIMM, 16 SATA
prievadų
Sistema iš 6 tokių plokščių turi 24 CPU
(96 Cortex-A9 branduolius), dirbančius
1.4 GHz dažniu
Testai parodė puikius rezultatus
2013
S.Maciulevičius
53
ARM procesoriai
Atsižvelgiant į tai, kad kompiuterių rinka gan
sparčiai juda atsisakymo nuo stalo kompiuterių ir
pakeitimo juos mobilesniais įtaisais link, ARM
procesorių ateitis regisi kur kas geresne, kadangi
mobiliesiems įtaisams kritiniu faktoriumi yra labai
mažos energijos sąnaudos, sąlygojančios ilgą
baterijų darbo laiką
Be to, šiems įtaisams svarbus ir kompaktiškumas,
o ARM procesoriai, tampantys sistemomis
viename kristale (SoC), čia irgi turi pranašumą
2013
S.Maciulevičius
54