[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Motorola VS Intel
Jiz nejakou dobu zde sleduji debatu Motorola VS Intel. Pridam zde
nekolik svych poznatku jakozto koder na obou zminenych platformach.
Intel (Pentium):
*Smesny pocet registru, ktere maji navic pevne prideleny vyznam, coz ma
za nasledek neustale hrabani do pameti.Tzn ze seberychlejsi Pentium
bude brzdeno pameti.Tim je naprosto vylouceno, aby bylo Pentium vubec
nekdy konkurenceschopne RISCum.
*Uboha instrukcni sada. Par pouzitelnych instrukci, ktere nic neumeji
maji za nasledek ,ze vysledny kod narusta do obludne velikosti. Vetsina
komplexnejsich instrukci je nekolikanasobne pomalejsi, nez jejich
ekvivalent poskladany z jednotlivych instrukci.
*Nesmyslne OP-kody. Spusta instrukci ma 8-bitovy Op-kod, vysledkem je,
ze nasledne ulozeny 32bitovy ukazatel se cte z LICHE adresy! Slozitejsi
Op-kody jsou pak ruzne dolepovany pridavnymi kody apod. Vysledkem je
neskutecny chaos, ktery se obtizne rozsiruje.
*Minimum adresovacich modu.Vypocet efektivni adresy se provadi asi 5
zakladnimi mody. Zbytek se musi kombinovat, coz u tak nizkeho poctu
registru vede k dalsimu hrabani do pameti.
*Neschopny pipeling. To cemu se rika zpracovani nekolika instrukci
soucasne
je Intelu odepreno.Parovat se totiz daji jen tzv. jednoduche instrukce,
kterych je jen hrstka a jejich soucasne pouziti za sebou v kodu je asi
tak pravdepodobne jako ze Microsoft vytvori kvalitni operacni system.
*Debilni mnemonika. To sice neni chyba hardwaru, ale naprosto to
znemoznuje
trochu rozumne programovani. Priklad CMPXCHG8 - to je instrukce co ?
Jednotlive prefixy a suffixy instrukci jsou vymysleny tak nelogicky, ze
si je clovek musi pamatovat vsechny.
*Neschopnost presouvani dat. U Intelu zcela chybi adresni mod na
presouvani z pameti do pameti, ci prace s obema operandy v pameti.
Retezcove instrukce, ktere to umeji jsou neskutecne pomale, coz jejich
pouziti vylucuje.
*Slozite deleni/nasobeni. Tyto instrukce maji u Intelu takova omezeni,
ze samotnemu vypoctu musi predchazet cela rada pripravnych praci
spojena
s presouvanim z registru do registru apod. protoze na tyto operace jsou
napevno prideleny registry.
*Neexistence podminenych smycek. Vetsinu casu CPU stravi v nejake smycce
u Pentia je zakladni instrukce LOOP pomalejsi, nez "sub cx,1 ; jne
Loop"
podminena smycka je jen jedna a to pouze nenulovym vysledkem a je asi
3x
pomalejsi nez ekvivalen z jednotlivych instrukci !
*Pomale prepinani mezi rezimy. Intel ma spoustu pracovnich modu (dokonce
i
mod 8086 :-))) ,ktere se musi v pripade Microsoftich systemu neustale
prepinat, coz je neskutecne pomale.
*Neschopne MMU. Sice o nem moc nevim, ale pri porovnani se schopnostmi
MMU
Motoroly je to uplne srandovni.
*32-bitove registry. Samozrejmost u 32-bitoveho CPU, ale naprosty
nedostatek
v pripade konkurovani RISCum.Take to silne zpochybnuje 64-bitovost
techto
procesoru.
*Vysoka vyrobni cena, chybovost a naprosta impotence jasne odsuzuji
Pentiovou radu k zaniku.
Jedine, co se musi Intelu uznat je, ze i s takovou hromadou shitu
dokazal
vytvorit celkem rychly CISC procesor. I kdyz to silne pripomina Trabanta
s motorem z Lamborghini.
Ale, abych porad jen nehanil - Pentium ma i dobre vlastnosti. Napriklad,
kdyz si na nej date litinovou plotnu, tak vam zadarmo uvari kafe :-)
Motorola(680x0/88xxxx/PowerPC:
*Spousta univerzalnich registru. V pripade rady 680x0 je to 16
32-bitovych
registru, v pripade RISC rady 88xxxx je to dokonce 32 64-bitovych
registru.
U PowerPC nevim, ale asi to bude podobny jako u 88xxxx.
*Velmi komplexni sada instrukci, ktere mohou pouzivat libovolne registry
ci adresovaci mody jako vstupni ci vystupni operandy.
*Minimalne 16-bitove OP-kody zajistujici zarovnani na sude adresy.
*Naprosto fascinujici adresovaci mody. Jejich pocet je diky flexibilite
ohromujici. priklad ([pc,n],an,dn*m), (off,[adr],dn*m) jsou veci o
kterych se Pentiu muze jen zdat.V pripade predekrementace a
postinkrementace uz ani nema cenu srovnavat.
*Vyborny pipeling, ktery dokaze zparovat temer vsechny instrukce, ktere
spolu nemaji vztah "zapis po cteni" apod.
*Skvela mnemonika, ktera pouziva standartni predpony a pripony.I pri
velmi vysokem poctu instrukci se velmi dobre pamatuje.
*Univerzalni presouvani dat. Je mozno presouvat z registru do registru,
pameti do pameti, registru do pameti apod.
*Univerzalni deleni/nasobeni. Je mozno pouzivat vsechny datove registry
adresni mody, operandy v pameti apod.Registry je mozno parovat pro
64-bitove vypocty.
*Dva rezimy prace.Supervisor a User mod jasne urcuji, ktery mod je urcen
aplikacnimu programu a ktery systemu. Zadne dodatecne slataniny
zajistujici kompatibilitu s pocitaci IQ150 a PMD85 :-)
*Superscalarni struktura, oddelene data a code cache, burst mod,
pipeling
jsou jasne znaky urcite vyspelosti a slouceni s RISC technologii.
*U RISCove rady jsou samozrejme 64-bitove registry.
*Spolehlivost, bezchybnost a nizke vyrobni naklady.
Na spoustu veci jsem si nevzpomel, nektere veci jsou mozna nepresne ale
celkove to je z velke casti hola skutecnost. A rozhodne se zde nechci
prit
s Mr. Petrickem o kazdy kazdy bod tohoto seznamu - nemam tolik casu a
vzhledem k jeho vytrvalosti bych asi nakonec podlehl dobrovolne :-)
FiDo of INSANITY