Téma týdne: Uvnitř procesoru - 64 bitů spasí vše?

Diskuze čtenářů k článku

Pavel Rosický  |  28. 05. 2006 21:20

K poslednímu odstavci........no to máte pravdu 8 bitové procesory se teď také používají - do kalkulaček

Souhlasím  |  Nesouhlasím  |  Odpovědět
pirko  |  28. 05. 2006 10:01

Článok je veľmi dobrý - ja by som tam doplnil tie ďalšie problémy s použitím. Ako bývalý strojár musím podotknúť že na IT je divné to že nikto nevie (?) vyrátať výkon nejakého stroja pred praktickými testami. Myslím že u DEC boli sami prekvapení výsledkami keď na prvé ALPHY dali 64bit OSF/1 a 64 bit Orákel (3 násobný nárast ) . Rovnako ako boli ľudia prekvapení keď na AMD64 s WinXP 64 so 64 bit drivermi dali 64 bit FarCry (pokles výkonu o 5%).
Podľa mňa je vlatne jediná výhoda veľkosť pamäte = sám som musel riešiť prevádzkovanie 32bit ERP na 64 OS - vyriešilo sa to tak že sa kúpila 64 bit aplikácia. Asi je lacnejšie kúpiť hw/sw než analyzovať prečo interné tabuľky 1 užívateľa zaberajú 500 MB RAM.
Možno by bolo zaujímavé posúdiť nutnosť používať 64 bit a 32 bit dátové typy - si spomínam ako mi jeden učiteľ na VA Brno spomínal ako bojovali za presadenie digitálnych počítačov proti analógovým - stále sa omieľalo že analógové sú presné - tak sa vyrátal že digitál s FP typmi umožňuje vyrátať koľko atómov vodíka sa zmestí na dráhu od Slnka po Pluto.
BTW jednu ročníkovú prácu som robil na nejakom bazmeku ktorý mal 2 bit rezy CPU a umožňoval skladať ich.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Uncleduke  |  25. 05. 2006 12:39

$SUBJ, nadchlo mne že je to podané srozumitelnou a čtivou formou.

Ještě jednou dík.

Souhlasím  |  Nesouhlasím  |  Odpovědět
MazeGen  |  24. 05. 2006 13:05

To zní, jako kdyby na platformě x86-64 MMX technologie nebyla, ale ona tam samozřejmě je.

Viz odstavec: "V běžných procesorech se tato technologie nazývá MMX (MultiMedia Extension). V některých případech dosahuje výrazně vyššího výkonu než původní 64bitové procesory i přesto, že je MMX doplňkem „jen“ 32bitových procesorů. Jsou však situace, kdy je výhodnější použít jiný způsob než technologii MMX. Právě tam vítězí klasické 64bitové jádro procesoru."

Souhlasím  |  Nesouhlasím  |  Odpovědět
Gofry, Gofry  |  24. 05. 2006 12:06

"Protože se výpočetní výkon do přídavných částí, není otázka datové šířky kritická." V prvej vete súvetia mi nejak chýba sloveso.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Kryspin  |  24. 05. 2006 11:45

Proč není uvedena základní informace o procesoru, tj šířka jeho strojových instrukcí? To se autor opravdu tolik bojí, aby nevyšlo najevo že Intel Core Duo je vlastně 8-bitový procesor?

Souhlasím  |  Nesouhlasím  |  Odpovědět
RaStr  |  24. 05. 2006 12:36

Jak je na tom Core Duo, to tedy presne nevim, ale sire binarniho kodovani instrukce je take celkem dost nereprezentativni udaj. Napr. jednocipy PIC maji tuto siri 16 bitu, cili by se zdalo, ze je to nejaka CISC architektura s tisici instrukci, ve skutecnosti ale z tech 16 bitu jen cca prvnich pet koduje instrukci (cili CPU ma celkem asi jen 32 instrukci, je to tedy RISC architektura) a zbytek je operand (napr. adresa registru = vnitrni RAM a 8-bit je operand, ktery tam ma byt ulozen, nebo adresa v ROM u jump instrukce, atp.). Naopak treba v predchozim clanku zmiena 6805-ka mela 8-bit kod instrukce (s vyjimkou instrukci jump a call), ale ve skutecnosti bylo celkem instrukci jen neco kolem 200 a podobne na tom byla treba 8080-ka od Intelu. U prvnich CPU byla sire sbernice rovna siri registru a ta se rovnala siri ALU, pozdeji se vsak zacala pouzivat i jina sire sbernice, nejprve uzssi (napr. u I8088, ci 386SX), pozdeji pak zase naopak sirsi (u INTELu od Pentii vyse). Podobne se pozdeji menila i sire registru, takze jedine co zustalo jako jakasi smerodatna  zalezitost je asi datova sire univerzalni ALU (i kdyz ani to neni uplne dokonale, protoze jak uz nekdo vyse zminil, casto neni ani tak dulezite jak siroke jsou registry, ale treba kolik RAM je primo adresovatelne be nutnosti strankovani, atp.) 

Souhlasím  |  Nesouhlasím  |  Odpovědět
Kryspin  |  24. 05. 2006 17:01

Naopak, je to docela reprezentativni. I8080 nebo I8088 byly 8-bitove, a mely 8-bit opcody. M68000 byla 16bitova, a mela 16bit opcody. ARM je 32bitovy, a ma 32bit opcody. 64-bit riscy maji zase vetsinou 64bit-ove instrukce.. To ze X86 nebo AMD64 maji stale jen 8-bitovy instrukcni dekoder je pekna ironie.

Souhlasím  |  Nesouhlasím  |  Odpovědět
zajdee, zajdee  |  24. 05. 2006 17:16

Neni to ironie, rika se tomu "zpetna kompatibilita"...

Souhlasím  |  Nesouhlasím  |  Odpovědět
gro  |  24. 05. 2006 21:03

me to prijde jaka zpetna debilita, stejne se vsechno obmenuje deska procak pameti cely HW a SW taky, neustale...

Souhlasím  |  Nesouhlasím  |  Odpovědět
RaStr  |  25. 05. 2006 12:33

Nechci ti kazit radost, ale dost zalezi na tom, jak to budes pocitat, napr. P4, ma dle jedne metodiky 15 bytu dlouhe instrukce, viz. zde: http://www.sandpile.org/ia32/opc_enc.htm, takze by se klidne mohlo rici, ze P4 je 120 bitovy CPU, ale je zrejme, ze je to nesmysl. Stejne jako to, ze RISC CPU bude mit 64-bit tovy kod instrukce, protoze kdyby ano, tak uz by to nemohl byt RISC. 64-bit je tam jen delka binarni reprezentace assemlerove instrukce, tj. obsahuje jak kod instrukce, tak nejaky operand (napr. cislo registru, adresu v RAM a jeste treba binarni data), napr. MOV (h1234)+d'1000', R1 je to same jako MOV (h4321)+d'0001',R7, proste jediny typ instrukce ovsem s jinymi "daty", takze i jinym binarnim zakodovanim, v mem prikladu bude takovym zakladnim typem MOV (indirect address)+literal, register . Tzn. ze takovy CPU muze mit treba jen 32 zakladnich typu instrukci, kodovanych prvnimi 5-ti bity binarniho kodovani, ale celkova delka bin. kodu jedne instrukce bude treba tech 64-bit. Ovsem to o CPU samotnem skutecne nic moc nevypovida, protoze nevime nic o tom, zda ten CPU nacte z RAM a dekoduje celych 64-bit v jednom cyklu, nebo cte treba jen prvni nibble, ten dekoduje a zbytek pouzije pozdeji k nakrmeni ALU, atp. Proste oznaceni x-bitovy CPU je vicemene jen komercni oznaceni zvolene zpravidla vyrobcem, ale ma jen omezenou informacni hodnotu, napr. mnou zmineny PIC MCU mel v prvni generaci kodovane instrukce v 8-mi bitovych kodech, pracoval s 8-mi bitovymi registry a ALU a adresoval ROM po bytech, vyrobce nazval tuto radu 8-bitove MCU. Novejsi modely vsak maji delku instrucniho kodu 16-bitu, koduji vsak prakticky stejnou instrucni sadu, pouze jiz nejsou 8-mi bitove operandy ulozene nekde za instrukci, ale jsou primo soucasti kodu instrukce, takze adresace ROM probiha  ve word-modu, ale tato CPU se neustale oznacuji jako 8-mi bitova, nebot sire registru i ALU je stale stejnych 8-bit. Sire "sbernice" techto MCU se pak pro zajimavost pohybuje od 6-t do 48+ bitu, dle modelu. Takze jedine, co zustava shodne je sire registru (vetsiny) a ALU (te univerzalni, pro ROL maji nektere modely i 16-bitovy specialni buffer, cili vlastne 16-ti bitovou doplnkovou specializovanou ALU). 

Souhlasím  |  Nesouhlasím  |  Odpovědět
Michal  |  24. 05. 2006 11:21

x86_64 ale neni o 64bitovosti. Na 64 bitu kaslu, vetsinou to neni treba. Co je ale vyhrou je usnadneni adresovani a predevsim vetsi pocet registru. Proto by mel byt program prelozeny do "64bit" podoby rychlejsi aniz by provedl byt jedinou operaci s 64bit operandem.

Toto myslim mohlo byt v clanku zmineno.

Souhlasím  |  Nesouhlasím  |  Odpovědět
David  |  24. 05. 2006 14:06

By mě teda zajímalo, o kolik zrychlí pár registrů navíc běh aplikace.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Karel  |  24. 05. 2006 14:19

Zrovna u rady x86 je velka slabina v tom, ze tech registru je tam jen par. Je to stejne, jako kdyby v obchode mohlo byt na regalu treba jen 10 druhu zbozi a pro zbylych 1000 by musel chodit prodavac do skladu. Sice se je dnes v cpu nekolik urovni meziskladu, ale chapete, ze kdyz bude primo na regalu tech druhu treba 50, tak obslouzite napr. 3x tolik lidi.

Kdyz ma procesor treba 128 registru, tak je lze pouzit jako zasobnik, coz dale urychli beh programu, protoze dnes se tech par registru musi pri kazdem volani funkce ukladat na zasobnik do ram a pak je zase vytahnout.

Samozrejme zalezi na pouziti, ale urychleni pri zdvojnasobeni registru muze byt mnohonasobne.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Frn  |  29. 05. 2006 08:14

Tohle už se vědělo v dobách 8-mi bitů. A právě proto byl Z80 osazen dvěma sadami základních registrů (AF, BC, DE, HL), mezi kterými se dalo přepínat jednou rychlou instrukcí. Při obsluze přerušení se tak ušetřil drahocenný čas, který by se musel projebat při odsypávání registrů na zásobník a načítání zpět.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Jakub Hegenbart  |  24. 05. 2006 15:37

Třeba o 20-30 %?

Souhlasím  |  Nesouhlasím  |  Odpovědět
Karel  |  24. 05. 2006 14:29

... 64 bit vetsinou neni treba... ano, neni, jen ve vyjimecnych situacich... jako treba cteni ze souboru, coz se deje priblizne ... porad
(samozrejme mluvim o novejsich fs nez fat)

Souhlasím  |  Nesouhlasím  |  Odpovědět
Michal  |  24. 05. 2006 16:18

Pri cteni z disku jsou operace provadene procesorem tim, co zdrzuje uplne nejmene a vubec by rezie FS mela byt co nejmensi. Je to proste blby priklad.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Karel  |  24. 05. 2006 17:41

Pristup do FS nutne neznamena pristup na disk, jednak to muzou byt jina zarizeni, druhak je typicky velka cast tabulek cachovana v pameti. A ve chvili, kdy se treba prohledava, maze, kopiruje vetsi mnozstvi malych souboru, tak se na disk nemusi vubec sahnout a vytizeni cpu je na 100%. Treba u ntfs je rezie oproti fat pomerne velka a srovnatelna operace trva treba 3x dele. A je to jen rychlosti cpu a myslim, ze nad 64bit FS by byl 64bit procik o poznani rychlejsi.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Aleš Hakl  |  25. 05. 2006 00:33

Vzhledem k tomu, ze jediny rezim, kde ma x86_64 jednodussi adresovani nez obycejna i386 je prave 64bitovy Long mode, tak vas argument trochu postrada smysl.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Inzenyr  |  24. 05. 2006 11:18

Procesor Intel Pentium 4 s EM64T neni 64 bitovy procesor. EM64T znamena, ze emuluje 64 bitovy procesor pro spusteni Windows 64, ale jedna se o 32bitovy procesor. 

Souhlasím  |  Nesouhlasím  |  Odpovědět
MazeGen  |  24. 05. 2006 13:12

Jak emuluje? EM64T znamená, že procesor podporuje nový mód s novými vlastnostmi. Nic se neemuluje.

Souhlasím  |  Nesouhlasím  |  Odpovědět
David  |  25. 05. 2006 21:36

opravdu EM64T je v P4 jen splacane 2x32bit, opravdovy x86 64bit je az u AMD

Souhlasím  |  Nesouhlasím  |  Odpovědět
Rejpal, Rejpal  |  24. 05. 2006 10:09

Nectu to ale zarazilo me to ... Motorola 6800 neni 8 bit ale 16 bit.. vy to kazdy kdo mel poradnej strok AMIGU !!!

Souhlasím  |  Nesouhlasím  |  Odpovědět
Rejpal, Rejpal  |  24. 05. 2006 10:15

jeste jednou ja .. koukam ze musim svuj nazor prepsat.. no jooo.. MC68000 je amiga 16 bit.. timto upravuju predchozi tvrzeni Uz je to preci par let

Souhlasím  |  Nesouhlasím  |  Odpovědět
Filda  |  24. 05. 2006 12:07

Motorola 6800 byla, hm, asi osmibitová. Měla dva osmibitový akumulátory. Nicméně Motorola 68000 byla odjakživa 32 bitová. Měla 8 univerzálních 32 bitových registrů a dalších 8 adresnejch.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Sorensen  |  26. 05. 2006 21:02

NE! Kazdy VY, ze "VY" se pise s mekkym I          

Souhlasím  |  Nesouhlasím  |  Odpovědět
Tony  |  24. 05. 2006 09:41

Já si myslím, že důležitější budou víceprocesorové systémy a nebo procesory,které budou obsahovat více jader. Nyní mám v PC "procesor" na grafice ATI, na zvukovce nějaký Creative, určitě v DVD, v HDD a asi nějaký hlavní od AMD . Intel vnucoval lidem výkonné jednoprocesorové řešení - vše integrovat, IBM a AMD to dělají opačně a Intel musel ustoupit, raději prodává v jednom pouzdře více jader. Dále mně běží "procesor" v routeru, v tiskárně, ve foťáku a v mobilu. Do uvozovek jsem dal název procesor, protože je to laicky řečeno . Budoucnost vidím v rozdělení práce PC do samotných procesů, které budou vykonávané v jednom jádře procesoru. Pro uživatele se nic nezmění, stále bude mít klávesnici a nebo dotykový displey.

Souhlasím  |  Nesouhlasím  |  Odpovědět
David  |  24. 05. 2006 09:56

Jo, a další procesor máš v optické myši

Souhlasím  |  Nesouhlasím  |  Odpovědět
veselik, veselik  |  24. 05. 2006 10:09

(a v optické myši ne lecjaký, že!)
...a. klávesnici, pevném disku, DVD mechanice...
(a jestli s tím vyjmenováváním neskončili, tak vyjmenovávají dodnes)

Souhlasím  |  Nesouhlasím  |  Odpovědět
Bedrich  |  24. 05. 2006 10:15

Nesouhlasim - BUDOUCNOST PATRI PLUTONIU ! ! !

Souhlasím  |  Nesouhlasím  |  Odpovědět
veselik, veselik  |  24. 05. 2006 10:29

Aluminiu!

Souhlasím  |  Nesouhlasím  |  Odpovědět
sdfxdg  |  25. 05. 2006 09:12

Číňanům!

Souhlasím  |  Nesouhlasím  |  Odpovědět
tomik  |  24. 05. 2006 09:06

To je teda morbidní výraz.

Souhlasím  |  Nesouhlasím  |  Odpovědět
veselik, veselik  |  24. 05. 2006 10:07

"adresace" je termín, který se používá mnoho, mnoho let. S tím se nic nenadělá

Souhlasím  |  Nesouhlasím  |  Odpovědět
mj23  |  24. 05. 2006 00:39

Kvalitny clanok!
Len tak dalej.

Souhlasím  |  Nesouhlasím  |  Odpovědět
maxos  |  24. 05. 2006 08:27

Ale nejak ste pozabudli na PowePC ktore realne ako prve mali 64 bitove procesory;)

Souhlasím  |  Nesouhlasím  |  Odpovědět
veselik, veselik  |  24. 05. 2006 10:04

Obávám se, že PowerPC nebyly první 64bitové procesory. O pár let dřív byly uvedeny MIPS R4000 či DEC Alpha 21064.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Aleš Hakl  |  24. 05. 2006 00:33

Rozumny zpusob podle ktereho rozlisit u modernich architektur "bitovost" procesu, je velikost virtualniho adresniho prostoru, ktery tam bezny operacni system (tj. takovy, ktery nevyuziva intelovsky mechanizmus deskriptoru, coz jsou dnes snad vsechny, pokud bychom zanedbali tento predpoklad mohli by jsme tvrdit, ze i8086 je 32 ci 20 bitovy procesor ci i386 48bitovy) vyuzije, tedy delka ukazatele (v intelovske terminologii near ukazatele). Na vsech beznych modernich procesorech je toto vicemene ekvivalentni sirce slova ALU. Toto je take ten podstatny duvod, proc se na 64bitove procesory _NYNI_ prechazi - na platforme IA-32 muze jedna aplikace bez pouziti nejake netrivialni magie adresovat prave onech 2^32 = 4GB a realne pouzit pro nejake svoje ucely tak 2-3GB, zbytek padne na operacni system. Dalsim detailem je, ze ona ta 36bitova intelovska adresace fyzicke pameti nefunguje uplne primocare - ma to jiste podstatne neduhy ohledne spoluprace s periferiemi.

Ohledne toho MMX - ono to sice provadet aritmetiku s 64bitovymi cisly vicemene umi, ale primarnim ucelem cele te veci je neco uplne jineho a to prace s 64bitovymi vektory nejakych mensich cisel (a vetsinu tech opravdu zajimavych operaci to, pokud spravne hledam v manualu Netwide Assembleru, s 64bitovymi cisly neumi, proc taky).

A oni ty x86_64 64bitove procesory nejsou take, az takova vyhra. Tim jak se az chorobne udrzuje zpetna kompatibilita malem az k i4004 tak je to velice podivne a docela drsne nekonzistentni, ale zase masivne prodavatelne jako "procesor do PC" a je uplne jedno ze je to 64bitove, a z toho jasne vyplyva, ze v porovnani s rozumnejsimy navrhy mnohonasobne levnejsi.

Souhlasím  |  Nesouhlasím  |  Odpovědět
roman  |  24. 05. 2006 08:45

PAE funguje tak ze ma 36bitove adresovani, ale aplikace muzou porad pouzivat jen ty 4G, vyhoda je v tom ze kdyz mam 8G RAM tak muze aplikace A pouzit 4G a aplikace B taky 4G. problem je s tim prepisem driveru, ktere musi PAE podporovat coz je prace dost napicu (hlavne z hlediska testovani). Navic tusim ten pristup za 4G je pomalejsi nebo cosi

a amd64 vyhra je protoze se upustilo od spousty prave toho obsolete cruftu - viz napr. to ze vsichni pouzivaji sysenter pro syscally, teoreticky uz neni potreba ATPIC, je tam konecne GP registru atd. ta architektura JE cistsi, ale je fakt ze oproti normalnim architekturam je to fakt bida.

dalsi pomerne malou zminovanou vyhodou amd64 je rychlost prekladu prekladacu - protoze prekladace uz nemusi podporovat miliardy rad procesoru tak je ten preklad rychlejsi - aspon ja mam tento dojem a velmi mne to potesilo ;)

Souhlasím  |  Nesouhlasím  |  Odpovědět
Petr Baláš  |  24. 05. 2006 22:54

No čistě teoreticky může apliakce využívat segmentů a sama adresovat celých 36 bitů adresního prostoru ale v praxi nevím o žádném OS který by to podporoval.
Zpomalení u driverů je o tom, že spousta HW umí DMA jen do prvních 4 GB paměti a tak se data musí nejprve nasypat do bufferu ve spodních 4 GB a až pak odDMAčkovat do např. disku. Pokud se něco nezměnilo, tak tímto problémem trpí i Intel 64bit procesory, zatímco AMD má toto vyřešené.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Aleš Hakl  |  25. 05. 2006 00:27

No ono to OSy nedelaji ze dvou duvodu: Programovaci jayzky na to nejsou moc delane a na vetsine CPU nic podobneho neni, takze by byl problem s portabilitou.

Ohledne toho DMA - on prvni problem je ten, ze klasicke PCI neumi adresovat pamet nad ty 4GiB, takze to neni ani tak moc o CPU jako o HW okolo.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Radek  |  24. 05. 2006 08:48

jeste k MMX - dulezitou vlastnosti je ze umi aritmetiku se saturaci coz je velmi dulezite pri zpracovani videa nebo audia atd.

Kdyz na klasickem procesoru secteme dejme tomu dva byte tak se muze stat ze vysledek bude vetsi nez rozsah
byte urceneho pro vysledek a dojde k preteceni a to vysledku bude ulozeno jen ten zbytek po preteceni.
To je dulezite napr. pri zesilovani amplitudy signalu (reprezentovane hodnotou).
Dejme tomu ze hodnota konkretni amplitudy (hodnota byte) je 200. Chceme ji zesilit 1.5x. vysledek je 300,
ale diky preteceni bychom dostali 300 - 255 tj. 45. Takze programator by musel otestovat ze doslo k preteceni
a upravit hodnotu na 255 (max byte).

Ne tak s MMX, tam by doslo k saturaci a hodnota by byla 255. Takze doslo k velkemu zruchleni i v tomto jednoduchem pripade.

http://webster.cs.ucr.edu/AoA/Windows/HTML/TheMMXInstructionSet.html

Souhlasím  |  Nesouhlasím  |  Odpovědět
hm  |  24. 05. 2006 00:26

koprocesor x87 je 80-ti bitovy

Souhlasím  |  Nesouhlasím  |  Odpovědět
veselik, veselik  |  24. 05. 2006 01:39

Podle IEEE 754 je v přesnosti "Extended" registr ve tvaru 64 bitů (mantisa) + 15 bitů (exponent) + 1 bit (znaménko). Totéž se používá také v koprocesorech 80x87.

Souhlasím  |  Nesouhlasím  |  Odpovědět
xR  |  24. 05. 2006 08:58

64+15+1=80

Souhlasím  |  Nesouhlasím  |  Odpovědět
hm  |  24. 05. 2006 09:36

potom nemuzete tvrdit ale, ze sse je 128b, kdyz jej muzete pouzivat pouze na vektory 32b nebo 64b real. cisel a navic tyto cisla maji svoji mantisu a znamenko

Souhlasím  |  Nesouhlasím  |  Odpovědět
Pavel  |  24. 05. 2006 20:45

Registry SSE maji skutecne sirku 128b, do kazdeho se vejdou ctyri realna cisla (typ float o velikosti 32b), ktera lze zpracovavat paralelne.

Souhlasím  |  Nesouhlasím  |  Odpovědět
Zasílat názory e-mailem: Zasílat názory Můj názor