[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