a sto su "x86 procesori" tolko losi i zastareli. sta im to fali (tj x86 instrukcijama)?
Pa x86 je tzv CISC arhitektura, tacnije jedina CISC arhitektura koja je preostala. CISC znaci Complex Instruction Set Computing. Sustina je u tome da CISC, pa samim tim i x86 koristi nesto duze instrukcije koje mogu da rade nesto komplikovanije operacije. Samim tim x86 ISA je set cije su instrukcije i razlcicite velicine, u zavisnosti od vrste. Primera radi instrukcija 'mov' je jednostavna prosta instrukcija za transfer podataka iz memorije u registre ili sta vec u zavisnosti od tipa adresiranja. Poredjenja radi i RISC takodje poseduje mov instrukciju koja nije nista kraca od one u x86 setu. Ipak, recimo x86 poseduje komplikovanije instrukcije npr za poredjenje, za koje se obicno pisu makro instrukcije u RISC assembleru ili su predefinisane vec nekako u samim C/C++ kompajlerima koji prevode na odgovarajuci masinski kod.
Problem x86 arhitekture u odnosu na RISC je bas ta, razlcita duzina instrukcija i naravno, te vece instrukcije se u modernim x86 procesorima razbijaju na interne mikrooperacije. Time je problem resen, kao i problem brzine izvrsavanja velikih i kompleksnih instrukcija.
Ipak, x86 sam po sebi je dosta tesko paralelizovati na superskalarnom nivou, pa pravljenje nekih n-way mikroarhitektura je prilicno nezgodan posao. Mozda bi moglo da se prosiri ILP nivo vektorskih instrukcija, ali to je pitanje na koje ja tesko mogu da odgovorim.
Pored toga, x86 je Little Endian arhitektura, za razliku od svih ostalih RISC, pa je su tako operacije bitshift-ovanja i maskiranja nesto kompleksnije, a citanje memorije ide od bita najmanje tezine ka bitu najvece. Bitshift su osnovne operacije kod recimo mnozenja.
Zarad kompatibilnosti sa 8088/8086 procesorima koji su odavno izumrli, danasnji procesori koriste 8-bitne i 16-bitne registre i segmentiran rad sa memorijom. Ipak, pojavom 32-bitnih operativnih sistema, WinNT, Win2000, WinXP, Linux itd... pocinje normalno da se koristi flat adresni prostor iznad 16MB.
U poredjenju sa RISC-om, x86 ima relativno mali broj registara, opste namene, pa je samim tim veca potreba za load/store operacijama, koje svakako umeju da uspore izvrsavanje. Problem je donekle resen velikom kes memorijom, brzom magistralom, prefetch mehanizmom itd....
Prema tome, posle toliko usavrsavanja performanse vise nisu toliki problem, ali sav taj dodatni hardware u x86 procesorima generise i dodatnu toplotu, protiv cega se sada opet Intel i AMD bore na razlicite nacine.
Sve u svemu, x86 je u startu bila arhitektura predvidjena za jeftine masine, ali da bi se sva ta uska grla premostila, bilo je potrebno mnogo ulaganja, ali s' druge strane trziste x86 cipova je najvece, pa je samim tim i ovo prilicno unosan posao.