Re: [閒聊] [瑪奇] 遊戲程式升級成64位元有什麼好處?

作者: jpopaholic (日音スキ)   2023-02-09 19:35:13
※ 引述《kopune (談崩專家 康普尼)》之銘言:
: 瑪奇韓國原廠已經升級64位元一段時間了
: 台版則是下禮拜(2/16)要升級
: MMORG升級64位元有什麼實質好處阿?
: 可以減少位移嗎?
: 現在遊戲大多是直接64位元了吧?
首先講益處之前要先認識一下
所謂的32/64/....位元程式 那個位元代表的是啥意思
大家都知道位元,是指一種電腦容量單位,英文為bit(s)
那這裡的容量,又是指啥呢?
記憶體/硬碟/程式? 都不是
而是指電腦(CPU)處理一道程序的單位大小
大家都知道不論何種程式語言,用compile編譯(加link)後
運送到電腦/OS/記憶體/CPU/暫存器 後都會變成數位的0和1(支語:數字)
最後用一堆NAND之類的邏輯閘(底層變成一堆npn pnp半導體)運送電子
而32/64/...位元 則就是運行一道指令單位需要多少個0/1
這時就會有資工系教授/面試官會考以下問題:
請問以下程式指令最後輸出會是啥?
int *a;
int b;
printf("%d\n",sizeof(a));
printf("%d\n",sizeof(*a));
printf("%d\n",sizeof(b));
printf("%d\n",sizeof(&b));
之類的....
所以越多位元,代表一道指令有更多的0/1 , 則會有更多的變化
不考慮op code/暫存器/記憶體位址
32位元 一道指令就有2^32種變化
而64位元 則是有2^64種變化
所以32與64位元不單單只是差兩倍
知道原理後就小講一下變成64位元的益處
大家(電蝦老闆)都知道,32位元處理器的電腦 記憶體最高只能塞4G
但很少人知道為何
電腦不只資料用0/1儲存,程式也一樣
一般程式大部分都會躺在硬/軟/光碟 (現行有的會躺在雲端?)
要運作時才會把程式有上述儲存裝置轉移到記憶體
然後利用CPU(與內部的暫存器)去讀/寫裡面的記憶體,運作裡面的程式
假設不考慮op code,單純只是要定址記憶體每個區塊
32位元電腦 定址長度最高也就只有32位元長度
所以最多可定址2^32(0~2^32-1)
又每個cell假設為1byte(剛好是電腦處理資料最小單位)
那這樣電腦最多只能定址2^32 * 1byte(s) = 4GB
所以4GB就是這樣來的
多餘的記憶體除非用特殊的指令,不然一般無法使用到
所以升到64bit首先最有感的就是記憶體可以變大
那記憶體變大有何好處: 最明顯感受到就是運作變快(先不考論程式品質等等其他因素)
上述說過,程式一般都會躺在硬碟,需要用時才會轉移到記憶體
所以假設要運行16GB的程式
32bit就得要搬移4次程式,而64bit只需搬移一次(假設記憶體設置>=16GB)
硬碟運作速度明顯遠慢於記憶體/暫存器運作速度
所以搬移硬碟越多次,速度就會拖越慢
由於64bit比32bit搬移次數少,所以運行得比較快
再來是指令本身
32bit指令只有2^32種變化,而64bit則更多
所以64bit可以把很多行32bit指令融合成一個變新的指令
像是某個步驟32bit需要跑3次,而64bit可能只要跑一次
在頻率相同狀況下,64bit這樣就會比32bit快3倍
所以改64bit運行速度會加快
但是由於指令不同,所以不論是OS和程式需要大幅度的改正
所以就會有一堆相容性問題
以上是小小的科普
作者: thesonofevil (四非亞心)   2023-02-09 19:39:00
先推 免得人家說我看不懂
作者: labbat (labbat)   2023-02-09 19:40:00
早期16bit/32bit爭議跟交流電直流電之爭差不多啦之後就多了32bit/64bit總是在重複一樣的情境
作者: lucky0417 (L.W)   2023-02-09 19:42:00
有以下嗎
作者: SangoGO (隱世的外來人Lv.1)   2023-02-09 19:44:00
我知道,所以x86比x64好對吧(爆論
作者: k960608 (霧羽‧浪沙)   2023-02-09 19:48:00
先推
作者: kaioken (寂寞獵人)   2023-02-09 19:49:00
是...這樣遊戲程式更可以運用新的硬體資源嗎?
作者: forsakesheep (家裡蹲魯廢肥宅)   2023-02-09 19:52:00
好像看懂了,又好像沒懂
作者: yankeefat (本人內建試製51cm連裝砲)   2023-02-09 19:57:00
最重要的一點 遊戲中貨幣的持有量會多很多RO的台幣交易 一部分就是因為高價品根本沒辦法用R幣
作者: lay10521 (小伊達)   2023-02-09 20:03:00
32bit可以用大數 避免32bit的限制
作者: hh123yaya (KID)   2023-02-09 20:07:00
恩恩 跟我想的一樣
作者: fate201 (Licht)   2023-02-09 20:12:00
Bit數越多 定址的成本也越高 不知道什麼時候會出現128bit
作者: rockmanx52 (ゴミ丼 わがんりんにゃれ)   2023-02-09 20:37:00
128bjt出現過了 沒有在一般電腦上使用而已bit
作者: ken841520 (WEIWEI)   2023-02-09 20:52:00
大數處理有開銷啊,怎麼可能比得上原生64bit
作者: NotBi11   2023-02-09 21:10:00
你應該在研究所考試前發的 幫大家複習OS
作者: sdd5426 (★黑白小羊☆)   2023-02-09 21:23:00
這篇的內容哪需要到OS 計組就有了
作者: harry2014 (欽風)   2023-02-09 21:25:00
我逐漸理解一切
作者: minie0114 (Quelpo)   2023-02-09 21:28:00
大家都知道…? 恩…
作者: A5Watamate (出荷済)   2023-02-09 21:31:00
怎麼沒有胡歌老公
作者: holyark93 (nothing)   2023-02-09 21:45:00
推薦這篇文章
作者: efkfkp (Heroprove)   2023-02-09 21:51:00
死去的計算機概論突然攻擊我
作者: gs8613789 (Shang6029)   2023-02-09 22:05:00
張凡有教過
作者: Lhmstu (lhmstu)   2023-02-09 22:26:00
x86是跟cpu指令集有關啦XD
作者: aertina (Aertina)   2023-02-09 22:36:00
漲知識捏

Links booklink

Contact Us: admin [ a t ] ucptt.com