Attól hogy 64 biten címzem a memóriát, hogyan lesz gyorsabb a rendszer a 32 biteshez képest?
asszinkron átvitelnél meg főleg, ha a keretben kétszer hosszabb a címző blokk...
még mindig nem értem ezt a 64 bites őrületet!
Nem teljesen értem amit leírsz. Kétszer hosszabb a címző blokk? 64 bites CPU az amikor a regiszterek, adat és a címbusz is 64 bites.
Ha jól optimalizálsz akkor egy órajel alatt a 64bites regiszterben 2db 32 bites adatot értékelhetsz ki pl. Itt máris 200%os a gyorsulás.
Nagyobb memóriát használhatsz vele ami nyilván a gép egészének növeli a teljesítményét.
Vagy rosszul értettem a kérdést?
mellesleg ha úgy van, ahogy írod, mit csinálsz köztes átvitelnél (carry)?
egyik regiszter túlcsordul a másikba, vagy hogyan gondolod (MSB-LSB)?
Tegyük fel, hogy van két 64 bites adatod, amiket össze akarsz adni. 32 bites regiszterekkel csak két lépésben tudod, összeadod alsó 32 biteket, elrakod a helyére, aztán az átvitelt + a felső 32 biteket. 64 bites regiszterekben meg fogod, és összeadod egy lépésben.
A szélesebb címsín meg azért jobb, mert a nagyobb fizikai memóriába a virtuális memóriából többet tud benntartani (vagy akár az egészet).
az x86-64 típusú procik egész sok mindent támogatnak, pl: sse,sse2, sse3 (egyszerre több (2-4) adaton való műveletvégzés), és több általános célú regiszter is van: az újak r8-r15..
Ezért a függvények közti paraméterátadás nem a lassú veremben történik, hanem regiszterekben általában... a veremnek nem mindig használják már az rbp bázis pointerét se: kevesebb művelet, több szabad regiszter
Hmm... Ezt direkt csinálod? Van bármilyen informatikai alapképzésed? Olvasás szövegértés megy?
"ezzel csak az a baj, hogy a processzor EGYIDŐBEN egy darab regiszterrel végezhet aritmetikai műveletet, olyan nem létezik, hogy több regisztert összevon egybe!"
SIMD: Single instruction multiple data.
És 1 regiszterről beszéltem amiben 2 32 bites adat van.
"mit csinálsz köztes átvitelnél (carry)?"
Ennek mi köze a témához? A köztes átvitel az auxilary carry flag (AF)azt jelzi hogy a legalső négy bitről (a nibbleről) történt e átvitel.
MSB LSB itt hogyan jött? Az hogy milyen irányban írja a számot nekem abszolúte nem lényeges. Nem írok assemblyben programot, és nem tervezek motorola 6800-ra vagy intel 8086-ra progit írni hogy a byte ordert is figyelnem kelljen.
Egyéb kérdés, észrevétel, hozzászólás?
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!