Šta je novo?

Intel versus ARM for the mobile computer

  • Začetnik teme Začetnik teme kovacm
  • Datum pokretanja Datum pokretanja
@audio..
To je cena za dev kit... Sta ces posle od toga da napravis je potpuno druga prica. Takodje.. taj 3d labs chip je 1 chip koji ima dva ARM9 i jedan GPU. I moze svasta... hw dekodiranje h263/4, OpenGL ES, ...
 
"ILI da ima toliko bolji proizvodni proces da anulira ovu prednost ARMa."

Upavo to.

ajde molim te objasni mi to "bolji proizvodni proces" kao plus za neku kompaniju?!

to samo znaci da mogu da proguraju i losije resenje jer imaju najbolju tehnologiju za proizvodnju cipova ali ne i najbolji chip...

ne kapiram... da se ARM i intel prozivode istim prozivodnim procesom ARM bi bio bolji ali nije samo zato sto intel to ne dozvoljava... ah, kako bilo, videcemo 😉
 
Svaki CPU ima mikroinstrukcije, samo sto neki mogu da ih pre-dekodiraju u interni ortogonalni RISC mikrokod, gde su svi MOP-ovi iste duzine.

kako mislis svaki CPU? i obicna MC68000 ili 80286? ili PowerPC ?!????!?

"And speaking of "IOPs," you should also recall that, like the P4 and the Athlon, the 970 decodes PowerPC instructions into a smaller, more uniform internal format that IBM's literature refers to as IOPs. Of course, I should remind you that very few of the 970's IOPs are actually cracked or millicode. In most cases, architected instructions are the same as their internal counterparts." link

dakle i PowerPC radi isto to ali u manjoj meri. hm... a zato sam kompajler to ne uradi? To je vec IBM primenio kod Cell-a?


...Cilj ovoga je bolje iskoriscenje i postizanje internog paralelizma na nivou instrukcija.

to je sve jasno ko dan. osim onoga gore sto sam pitao 😉
 
Cekajte bre, sta vi mislite, da kad platite dev kit da ste zavrsili sa troskovima?

Hocete da kazete da vam ne treba PCB, kutija, napajanje, itd, i da kad odradite VHDL dizajn da stancovanje takvog custom chip-a ne kosta?!? :trust:

Ja ne vidim zasto se automatski podrazumeva da je x86 resenje losije. mp3 dekodiranje je radilo jos na Pentium MMX 166MHz koji je uzgred vozio i ceo graficki operativni sistem. Da sad neko napravi taj procesor u 45nm i stavi na njega samo custom aplikaciju (napisanu bilo kojim standardnim razvojnim alatom), opet bi bio bolji od ARM-a u svakom pogledu jer se lakse/jeftinije programira, debaguje i proizvodi.
 
Poslednja izmena:
Ja ne vidim zasto se automatski podrazumeva da je x86 resenje losije. mp3 dekodiranje je radilo jos na Pentium MMX 166MHz koji je uzgred vozio i ceo graficki operativni sistem. Da sad neko napravi taj procesor u 45nm i stavi na njega samo custom aplikaciju (napisanu bilo kojim standardnim razvojnim alatom), opet bi bio bolji od ARM-a u svakom pogledu jer se lakse/jeftinije programira, debaguje i proizvodi.

1. i Atari Falcon na 16MHz + DSP (procesori sa kraja 80tih) moze da pusta MP3 😉 (wow - koji argument :d)

2. zasto je x86 los po defaultu? zar nije losije ako moras da rasturas x86 na mikroinstrukcije... zar to nije visak, taj korak raasturanja x86>mikroinstrukcije?
a zasto je x86 losiji procitaj od Dareka Mihocke no Execute! vec nekoliko puta sam naveo - jako dugacko ali jako, jako detaljno! neke detalje mi je tesko da razumem, verujem da ce tebi biti lakse za citanje (nadam se samo da nisi toliko ponosan pa da neces da citas tamo necije pisanje...).

3. ARM je i nastao zato sto ljudi iz Acorna nisu bili zadovoljni sa MC68K i x86 i napravili chip i ISA od 0 sa ciljem da bude bolji od ova dva navedena!

i stvarno da li neko ima objasnjenje zasto kompajler ne radi direktno prevodjenje u mikroinstrukcije?
 
Poslednja izmena:
a jel pusta bez tog modula 🙂
 
nijedan nV fanboy nije okacio novi nVidia APX 2500!? :trust: 🙂 nije komenarisano u vestima pa zato 😀
baziran na ARM11 jezgru (do 750MHz)...
 
Poslednja izmena:
kako mislis svaki CPU? i obicna MC68000 ili 80286? ili PowerPC ?!????!?
Svaki CPU ima ICU - Instruction Control Unit. Da bi izvrsio neku instrukciju, operacioni kod, iliti instrukciju moras da dekodiras u neki mikroprogram, da bi procesor "znao" sta da radi. Poredjenja radi, ti kao vozach imas komande poput volana, kvacila, kocnice i gasa. Ako okrenes volan, okrenuce se tockovi. Dok vozis, sigurno neces pokretati tockove direktno rukom, nego posredno, preko sipke od volana, zupcanika, letve, spona itd... E pa slicno je i sa ICU. Procesor nije nista drugo do obicne masine.
E sad, taj mikroprogram za svaku instrukciju je podeljen na standardne faze u izvrsavanju, a to su donosenje operacionog koda, dekodiranje, izvrsavanje i vracanje rezultata. To je osnova po kojoj radi svaki procesor, a na kraju krajeva i konacni automat. Sledecu instrukciju donosi na osnovu PC registra, t.j. programm counter-a, koji inkrementira posle svakog izvrsenja status PC registra, a s' obzirom da su instrukcije poredjane u redu jedna za drugom, to nije problem.

"And speaking of "IOPs," you should also recall that, like the P4 and the Athlon, the 970 decodes PowerPC instructions into a smaller, more uniform internal format that IBM's literature refers to as IOPs. Of course, I should remind you that very few of the 970's IOPs are actually cracked or millicode. In most cases, architected instructions are the same as their internal counterparts." link

dakle i PowerPC radi isto to ali u manjoj meri. hm... a zato sam kompajler to ne uradi? To je vec IBM primenio kod Cell-a?
To je otprilike ono o cemu sam ja govorio. S' tim sto CISC instrukcije se predekodiraju u manje i jednostavnije, koje odgovaraju RISC kodu. E sad, duzina dekodiranja zavisi i od slozenosti instrukcije. Primera radi, ortodoksni RISC iz 80-tih nije imao ni instrukciju za mnozenje, pa su programeri implementirali takvo nesto raznim dovijanjima i implementacijama algoritama za mnozenje pomocu bitshift operacija. x86 dekoder ako je instrukcija "hardwired" prosledjuje instrukciju na direktno izvrsavanje, jer je algoritam za izvrsavanje operacije hardverski implementiran. Ako nije, instrukcija je mikrokodirana, postoji u mikrokod rom-u algoritam za njeno izvrsavanje, sto je daleko sporije.
Primera radi, kod K8 su mnoge SSE2 i SSE3 instrukcije bile mikrokodirane, da bi kod K10 bile hardwired.
No, da se ne udaljim previse od teme, poenta je da je za kompajler i za asm vidljiv samo operacioni kod ili ti legacy x86, x87, SSEx, AltiVEC i sta ti ja znam...
Kompajler moze biti optimizovan tako da koristi prednosti neke mikroarhitekture i da zaobilazi neke mane. S' obzirom da je kompajler deo programskog jezika viseg nivoa, vazi da funkcije implementirane preko kompajlera mogu biti manje ili vise optimizovane. Kompajler nema nikakav uticaj na MOP's i na mikroinstrukcije i unutrasnji rad ICU-a i procesora.
 
Poslednja izmena:
nVidia APX 2500 je odlican 🙂
 
1. i Atari Falcon na 16MHz + DSP (procesori sa kraja 80tih) moze da pusta MP3 😉 (wow - koji argument :d)

Ne vidim cemu izrugivanje i *******cija.

genuine je rekao kako ARM7TDMI-S na 60MHz moze da pusta mp3. Ja sam samo konstatovao da ARM7TDMI-S moze samo to, a da je Pentium MMX terao citav OS sa GUI-jem, mrezom, itd.

2. zasto je x86 los po defaultu? zar nije losije ako moras da rasturas x86 na mikroinstrukcije... zar to nije visak, taj korak raasturanja x86>mikroinstrukcije?

Svaki procesor to radi u manjem ili vecem obimu. Sustina je u tome da ako imas dobar dekoder (pa jos vise njih) na jeftinom silicijumu u 45nm to moze da bude bolje i jeftinije od RISC-a. Da ne ulazimo sada u detaljnu raspravu RISC .vs. CISC, navescu samo par primera.

Ja sam dosta imao kontakta sa MC68k asemblerom u vreme Amige, i smatram da je CISC mnogo laksi za developere jer se skoro svaka komanda mapira na odgovarajucu instrukciju u hardveru. Zasto je to dobro? Evo podjimo od jednostavnog primera koda:

Kod:
typedef struct {
	float	x;
	float	y;
	float	z;
	float	w;
} Vec3D;

float dp(Vec3D &a, Vec3D &b)
{
	return a.x*b.x + a.y * b.y + a.z * b.z + a.w * b.w;
}

Ovaj jednostavan kod za skalarni proizvod (dot product) generise sledeci masinski kod (Intel kompajler /O3 /Qax...):

Kod:
	mov	eax, DWORD PTR [esp+4]
	mov	edx, DWORD PTR [esp+8]
	fld	DWORD PTR [eax]
	fmul	DWORD PTR [edx]
	fld	DWORD PTR [eax+4]
	fmul	DWORD PTR [edx+4]
	faddp	st(1), st
	fld	DWORD PTR [eax+8]
	fmul	DWORD PTR [edx+8]
	faddp	st(1), st
	fld	DWORD PTR [eax+12]
	fmul	DWORD PTR [edx+12]
	faddp	st(1), st
	ret

14 instrukcija ili 37 bajtova koda za nesto sto programer dozivljava kao jedinstvenu, relativno cestu operaciju. Hajde sada da promenimo taj kod malo:

Kod:
#include <smmintrin.h>

typedef struct {
	float	x;
	float	y;
	float	z;
	float	w;
} Vec3D;

float dp(Vec3D &a, Vec3D &b)
{
	return _mm_cvtss_f32(_mm_dp_ps(_mm_load_ps((float*)&a), _mm_load_ps((float*)&b), 0xF1));
}

Sta sada dobijamo u asembleru (Intel kompajler, /O3 /QxS za SSE4.1)?

Kod:
	sub	esp, 8
	mov	eax, DWORD PTR [esp+12]
	mov	edx, DWORD PTR [esp+16]
	movaps	xmm0, XMMWORD PTR [eax]
	dpps	xmm0, XMMWORD PTR [edx], 241
	movss	DWORD PTR [esp], xmm0
	fld	DWORD PTR [esp]
	add	esp, 8
	ret

9 instrukcija, od toga 4 protracene zato sto se kreira privremena varijabla na steku preko koje se presipa rezultat iz SIMD registra na FP stack (limitacija ABI-ja i calling konvencije, a ne kompajlera), i 32 bajta koda (14 otpada na te 4 instrukcije "viska").

I pored tog "viska" (koji se moze izbeci!) i kompleksne instrukcije (DPPS, 6 bajtova enkoding) imamo ~15% ustede u memorijskom prostoru.

Ako analiziramo to dalje, videcemo da u prvom slucaju imamo prosecno 2.64 bajta po instrukciji, dok u drugom slucaju imamo 3.55 bajtova po instrukciji. Znaci, moralo bi losije da radi zar ne?

E, sad dolazimo do zanimljivog dela, ova druga sekvenca se moze svesti na 3 instrukcije u najboljem slucaju, dok se prva moze svesti na 12 instrukcija ukoliko se koriste fiksne adrese za rezultat i za vektore umesto referenci ili pointera. Medjutim, okreni-obrni brziniski rezultat je sledeci:

CISC (SSE4.1) : 3 takta za jedan skalarni proizvod
"RISC" (FPU) : 8 taktova za istu stvar

Sad cete reci da ARM moze da emulira SIMD. Mozda moze da se napravi preko VHDL identicna instrukcija. Mozda cak moze da se izvrsi za 1 takt -- evo nek' je ARM na 200Mhz to je opet 5ns, dok je 3 takta na 1GHz Penryn jezgru svega 3ns. Znaci, brze je i jeftinije raditi CISC i dekodirati kompleksne instrukcije koje pritom omogucavaju siru i jednostavniju primenu.

a zasto je x86 losiji procitaj od Dareka Mihocke...

Smorio sam se (tj smorio me je) na petoj strani.

Ukratko, neki od njegovih stavova su ispravni, medjutim zapeo je sa tim segmentima i ofsetima kao da je to ne znam kako dobar izum (meni licno se gadio).

Ne osporavam njegovo (ocigledno veliko) znanje, ali u pogledu bezbednosti i virtualizacije se sa njim ne slazem uopste.

Dalje, jasno je da VT i Pacifica trenutno imaju lose performanse, ali to nije slabost koncepta hypervisora, vec slabost tekuce hardverske implementacije i to moze samo da se poboljsa u buducnosti. Da bi se uocile slabosti u realnom radu, mora da se ima veliki i raznorodan uzorak, a to sto su svi implementirali hardversku virtualizaciju u svoj softver upravo to i omogucava. Ne kazem da nije moglo bolje, ali od neceg se moralo poceti.

3. ARM je i nastao zato sto ljudi iz Acorna nisu bili zadovoljni sa MC68K i x86 i napravili chip i ISA od 0 sa ciljem da bude bolji od ova dva navedena!

Od MC68K meni nema boljeg cipa! 😀
 
@audiofreak:
To sto si ti napisao je skroz ok. Ali taj jedan procesor koji bi implementirao tvoj kod je tezak koliko bar jedno 3-4 arm procesora. O tome zasto je intelov x86 dobar je govorio i jedan profa jer je veca gustina koda. Ali sad ovaj arm7tdmi-s je toliko lagan da nema ni pokretni zarez al opet moze da se nosi na golemim problemima. Ja sam za njega napisao operativni sistem i taskove koji radi digitalnu obradu signala, gui, snimanje na mmc karticu i interakciju sa korisnikom preko tastature i nisam mu pojeo ni 50% resursa a u pitanju je mikrokontroler sa 512k flesa i 40kb rama.
Ali zato Arm7 + specijalan mp3 dekoder zauzimaju manje od intelovog procesora a rade mnogo puta brze... Procesor se pravi ko od sale jer samo kopipastujes arm11 vhdl koji je firma kupila, opet copy past za mp3 dekoding i malko rucno oko interfejsa i gotov arm procesor sa mp3 dekoderom. Intel moze da ima sirovu snagu i da bude brzi kao procesor ali ovo je bas custom-land. posto novi armovi imaju kes i implementiramu koherenciju isto tako mogu da kopipastujem 3 arma, mp3 dekoder, usb interfejs i sve sto mi jos treba, da optimizujem za potrosnju i dobijem jedno cipce na kraju i da to bude manje od intelovog. Jeste da nije off the self resenje ali i ne treba da bude jer se radi razvoj procesora sa periferijama za sto manji uredjaj.

Trebalo bi da se nadje negde na netu ARM11 vs xScale najnoviji pa da se uporede njih dva.. ARM11 je u odnosu na ARM7 isto sto i pentium pro u odnosu na 286

Ideja ARM-a, i zasto su se tako lako obogatili je bas na tom otvorenom dizajnu koji se placa. Ako Intel radi to isto onda je skroz ok. Ako ne radi onda ce da izgubi...
 
Poslednja izmena:
Ja sam za njega napisao operativni sistem i taskove koji radi digitalnu obradu signala, gui, snimanje na mmc karticu i interakciju sa korisnikom preko tastature

To sve ne bi ni morao da pises da si imao x86 cpu. Uzeo bi neki linux, stripovao ga do koske i snimio u flash 😉
 
ima u vestima ovo:

"On2 Technologies je predstavio hardverski video dekoder za mobilne telefone ... Prema tvrdnjama kompanije On2, ova naprava se lako može integrisati sa ARM, MIPS i drugim embedded CPU i DSP jezgrima. Podržana je reprodukcija H.264 video zapisa u 1080p rezoluciji pri 30 fps pri kloku jezgra od samo 165 MHz."

http://benchmark.co.yu/forum/showthread.php?t=156394

"Ne kazem da nije moglo bolje, ali od neceg se moralo poceti." - covek bash i kaze kako su masu stvari mogli drugacije da urade kako bi u startu bilo bolje... no nvm
 
Poslednja izmena:
covek bash i kaze kako su masu stvari mogli drugacije da urade kako bi u startu bilo bolje... no nvm

Sa covekom sam razmenio par dugackih emailova, cak prica i srpski (doduse lose), i zove se Darko 🙂

Kao sto rekoh, za neke stvari je u pravu, za neke opet nije.

On posmatra x86 koncept kroz jednu usku prizmu onoga cime se on bavi, a to su emulatori. Sve instrukcije koje nemaju veze sa emulacijom (a to je ceo SIMD od MMX pa sve do SSE4.1) njega uopste ne zanimaju.

Kako mi je rekao, on radi mikro-benchmarke za svaki novi procesor i poredi arhitekture na taj nacin. Gde je tu problem? Zapravo ima (barem) dva problema:

1. Ocenjivanje x86 arhitekture na osnovu baznog integer/FPU seta instrukcija koji je postojao jos u 386 nema smisla. To je isto kao kada bi hteli da napravite "fer" poredjenje izmedju Fice i Porsea pa vozili Porse samo u 4-toj jer Fica nema 5-tu i 6-tu brzinu.

2. Meriti latenciju neke x86 instrukcije van realnog koda (u sintetickom testu) takodje nema nikakvog smisla. On ce na primer izmeriti da se neka instrukcija izvrsava za jedan takt vise na novom procesoru (sto moze biti posledica veceg L2), ali u realnom radu to se ne mora osetiti, a veliki L2 moze cak da dovede do toga da ista ta instrukcija ispadne brza, a ne sporija.

Sto se tice toga sto nam daju novitete i boljitke na kasicicu, tu se apsolutno slazem sa njim ali sam svestan da to u kapitalizmu drugacije ni ne moze dok je on jos uvek idealista po tom pitanju.

U svakom slucaju imali smo zanimljivu diskusiju gde sam mu ja preneo neka moja iskustva, i objasnio da neke stvari nisu bas tako jednostavne kao sto na prvi pogled izgledaju.

I na kraju, sto se tice video dekodera -- da je fixed function hardware isplativ, NVIDIA i ATI nikad ne bi presli na programabilne GPU-ove, niti bi tezili tome da od GPU-a naprave general purpose parce hardvera.
 
Koliko vidim NVIDIA i ATI general purpose hardware ce biti mnogo brzi za neke stvari od intel CPU-a, to mu dodje skroz logican korak u razvoju GPU-a. i ne vidim kakve to veze ima sa On2 Technologies video dekoderom - dva totalno razlicita trzista.
 
Koliko vidim NVIDIA i ATI general purpose hardware ce biti mnogo brzi za neke stvari od intel CPU-a, to mu dodje skroz logican korak u razvoju GPU-a. i ne vidim kakve to veze ima sa On2 Technologies video dekoderom - dva totalno razlicita trzista.

U grananju tesko da ce ikad biti brzi. Double precision jos ne podrzavaju. Koliko god bili brzi i bolji u buducnosti najverovatnije nikada nece moci da podignu OS bez CPU-a.

Veza je u tome sto je On2 fixed function hardware. ARM je fixed function hardware (kad ga ugradis i prodas uredjaj).

Sa druge strane x86 (a ni GPU) nije fixed function hardware.

Taj On2 je tek napravljen, a vec je zastareo. Kako ce sad dodati podrsku recimo za Microsoft HD Photo format?

Ja znam da je u kapitalizmu glavna ideja da ljudi trose novac na sledeci nacin:

1. Kapitalista proizvede novi uredjaj sa odredjenim mogucnostima
2. Kupac kupi novi uredjaj
3. Pojavi se novi format, specifikacija, sta god
4. Uredjaj postane zastareo i nefunkcionalan
5. Kapitalista pravi novi uredjaj koji podrzava nove mogucnosti
6. Kupac baca stari uredjaj jer je upgrade nemoguc (fixed function)
7. GOTO 2

To je ukratko nacin na koji funkcionise potrosacko drustvo vec decenijama.

Medjutim, taj lanac ima nekoliko slabih tacaka:

1. Prirodni resursi nisu neograniceni
2. Reciklaza nije savrsena (tamo gde je uopste ima)
3. Kapitalista bi mogao vise da zaradi ako bi menjao samo softver a ne i hardver
4. Kupac bi bio zadovoljniji kad ne bi morao da baca/prodaje/poklanja stvari (ljudi se vezuju za licne stvari)

Znaci gorenavedeni princip potrosackog drustva ce morati da se racionalizuje u skoroj buducnosti ili cemo uskoro biti do grla zatrpani rashodovanim mp3 plejerima, USB flash diskovima i ostalom potrosackom elektronikom za jednokratnu upotrebu.
 
Poslednja izmena:
Mislim da Intel konkretno ima brzi procesor od arm-a, ali da arm ima blagu prednost jer moze da se sam ubaci u veci komad silicijuma i da je zato dominantan. Recimo za PDA i sl. stvari gde je bitna sirova procesorska snaga i nista vise tu je po meni intel bolji... Ali ipak ostaje da se vidi kako ce da se pokaze nvidijino resenje sa arm-om
 
Poslednja izmena:
@audio ono oko reciklaze si totalno u pravu!
sto se GPU tice - kao PowerPC + SPE = Cell 😉 - nisam ni mislio da ce GPU ikada biti samostalan...

nego meni i dalje nije jasno zasto kompajler ne proizvodi mikroinstrukcije nego se taj deo nalazi u procesoru? ako jedna firma pravi i cpu i kompajler zar to ne bi moglo na taj nacin da se organizuje?

jedino IBM za sada ima ovaj pristup sa Cell-om. Right?
osim toga kada ce Intelov CPU moci da izvede ovakav realtime raytrace? link Kad naprave onaj CPU sa 32 jezgra koji su najavili pre dve godine?
 
Koliko ja znam, zato sto mikroinstrukcije ne moraju (niti mogu) biti iste za svaki procesor koji Intel napravi.

Na primer, ako stari procesor ima dve ALU jedinice, a novi tri, treca se nece uposliti dok se ne rekompajlira sav kod ako prevodjenje ne radi dekoder nego kompajler.
 
Sa kojim resenjem ce mi duze trajati baterija ? Dzaba mi ako je x86 brzi (ili ARM, ne bitno) ako ce mi baterija trajati ko na laptopu...
 
Bolji je ARM sto se baterije tice.. ovo zasnivam na metodi gledanja u soljucu od kafe ali niko ne moze svojom soljicom da me ubedi u suprotno
 
Poslednja izmena:
Mogu ja, x86 se vec proizvodi u 45nm, i proizvodice u 32nm za ~godinu dana. A ARM?
 
Nije bitan broj nanometara za potrosnju nego dizajn... Ako pogledas VIA koristi 65nm tehnologiju namerno da bi dobila power efficient procesor.. a druga stvar je da arm mozes da proizvodis u kojoj hoces tehnologiji pa cak i 18nm jer to nije chip nego dizajn... manji tranzistori => vise staticko curenje struje..
 
Poslednja izmena:
samo jedno pitanje: da li intel ima najbolji proces proizvodnje procesora (najmanji tranzistori?)

sta je sa IBMom? da li Sun ima svoje fabrike za proizvodnju procesora?
 
Nije bitan broj nanometara za potrosnju nego dizajn...

Izvini ali meni se cini da to sto tvrdis nije sasvim tacno.

Evo recimo Presler u 65nm sa ~376M tranzistora je imao 18% manju potrosnju nego Smithfield sa ~230M tranzistora u 90nm iako su oba imala "sleeping transistors" koji smanjuju leakage current u L2.

Da ne pominjem uopste Penryn sa ~410M tranzistora u 45nm -- proces itekako utice na potrosnju.

@kovacm:
Meni se cini da Intel trenutno ima najbolji tehnoloski proces u komercijalnoj upotrebi. Ako neko drugi (IBM na primer) mozda i ima bolji, ili nije komercijalan, ili je tek u najavi.
 
Izvini ali meni se cini da to sto tvrdis nije sasvim tacno.
Evo recimo Presler u 65nm sa ~376M tranzistora je imao 18% manju potrosnju nego Smithfield sa ~230M tranzistora u 90nm iako su oba imala "sleeping transistors" koji smanjuju leakage current u L2.
.

Jel samo smanjeno bez redizajniranja jezgra ili je i jezgro redizajnirano?
Samo hocu da kazem da mozes da imas dva dizajna na 90 nm od kojih se jedan ekstra greje a drugi je cool a iste su im performanse zbog dosetki koje nisu na nivou tehnologije
 
Poslednja izmena:
Nazad
Vrh Dno