AB王
@abwang
說
Tue, Apr 18, 2017 7:22 PM
Wed, Apr 19, 2017 1:08 AM
5
又是篇 32bit = 4Gbyte addressing的廢文
AMD 重返榮耀?解析曾技壓英特爾的 64 位元技術到全新的 Ryzen 架構
老曼~
@Mandeling
Tue, Apr 18, 2017 10:36 PM
呃, 不是這樣嗎? 求解 @@ /
AB王
@abwang
說
Tue, Apr 18, 2017 10:45 PM
我以為這是老生常談了....
首先,一個CPU架構裡的「bit數」,通常指的是「整數暫存器的bit數」,也就是一個整數指令能夠運算的最大位元長度,而「記憶體定址的位元數」是另外一回事,有些CPU的bit數剛好就是記憶體定址長度,像386/486就是。
AB王
@abwang
說
Tue, Apr 18, 2017 10:47 PM
但是這兩個參數本質上是脫鉤的,最簡單的例子,286是16bit CPU,但是記憶體定址是24bits;如果32bit == 4G addressing,那8088/86/286應該是64K addressing才對。
AB王
@abwang
說
Tue, Apr 18, 2017 10:51 PM
Tue, Apr 18, 2017 10:53 PM
換句話說,CPU的addressing bit數,其實只看指令集裡對addressing怎麼規定而已,8086/286是用兩個16 bit暫存器組合( R1 <<4 )+R2這樣的方式,最後總長度是20/24bits,386/486用了比較複雜的轉換模式,但是最後總長度就是32 bits。
老曼~
@Mandeling
Tue, Apr 18, 2017 10:56 PM
瞭解, 所以其實就是databus不等於 addressbus 的意思?
AB王
@abwang
說
Tue, Apr 18, 2017 11:00 PM
data bus當然不等於address bus;更進一步來說,暫存器長度也不見得真得等於外面的databus;Pentium的databus是64 bit,可是是32bit暫存器(因為superscalar需要更高的fetch寬度),這三者都是脫鉤的
AB王
@abwang
說
Tue, Apr 18, 2017 11:04 PM
如果當初有顆32 bit CPU,存取記憶體就是用兩個32 bit暫存器連起來看成一個64 bit address space(實際上怎麼做不管),那就是個有64 bit addressing的32 bit CPU
AB王
@abwang
說
Tue, Apr 18, 2017 11:16 PM
喔對了,那篇文章對Intel的Hyperthreading/SMT的說法也是錯的
老曼~
@Mandeling
Wed, Apr 19, 2017 12:33 AM
對於只學過兩學期計算機概論的我, 再來就太深了XD 感謝說明
AB王
@abwang
說
Wed, Apr 19, 2017 12:38 AM
我的老天,這篇錯得更離譜
一窺 Intel Skylake 微架構,探究現代 CPU 的「內在美」
貝哥哥_鍵鼠叔
@GasVosky
說
Wed, Apr 19, 2017 1:07 AM
給我報報要重出江湖了嗎
AB王
@abwang
說
Wed, Apr 19, 2017 1:10 AM
貝哥哥_鍵鼠叔
: 何必呢,人家也是賺個稿費
Number5
@think4design
Wed, Apr 19, 2017 1:10 AM
匪諜大
貝哥哥_鍵鼠叔
@GasVosky
說
Wed, Apr 19, 2017 1:12 AM
你讓我越來越想來寫一本白果醬了
一枚壞掉的熊貓大叔
@m2c
說
Wed, Apr 19, 2017 1:44 AM
閱
Chienning
@Chienning
Wed, Apr 19, 2017 6:22 PM
幾年前玩過4-bit MCU ... 還在上面寫了RSA和ECC ...... 絕對不是4-bit RSA
載入新的回覆
首先,一個CPU架構裡的「bit數」,通常指的是「整數暫存器的bit數」,也就是一個整數指令能夠運算的最大位元長度,而「記憶體定址的位元數」是另外一回事,有些CPU的bit數剛好就是記憶體定址長度,像386/486就是。