AB王
老曼~
呃, 不是這樣嗎? 求解 @@ /
AB王
我以為這是老生常談了....
首先,一個CPU架構裡的「bit數」,通常指的是「整數暫存器的bit數」,也就是一個整數指令能夠運算的最大位元長度,而「記憶體定址的位元數」是另外一回事,有些CPU的bit數剛好就是記憶體定址長度,像386/486就是。
AB王
但是這兩個參數本質上是脫鉤的,最簡單的例子,286是16bit CPU,但是記憶體定址是24bits;如果32bit == 4G addressing,那8088/86/286應該是64K addressing才對。
AB王
換句話說,CPU的addressing bit數,其實只看指令集裡對addressing怎麼規定而已,8086/286是用兩個16 bit暫存器組合( R1 <<4 )+R2這樣的方式,最後總長度是20/24bits,386/486用了比較複雜的轉換模式,但是最後總長度就是32 bits。
老曼~
瞭解, 所以其實就是databus不等於 addressbus 的意思?
AB王
data bus當然不等於address bus;更進一步來說,暫存器長度也不見得真得等於外面的databus;Pentium的databus是64 bit,可是是32bit暫存器(因為superscalar需要更高的fetch寬度),這三者都是脫鉤的
AB王
如果當初有顆32 bit CPU,存取記憶體就是用兩個32 bit暫存器連起來看成一個64 bit address space(實際上怎麼做不管),那就是個有64 bit addressing的32 bit CPU
AB王
喔對了,那篇文章對Intel的Hyperthreading/SMT的說法也是錯的
老曼~
對於只學過兩學期計算機概論的我, 再來就太深了XD 感謝說明 (worship)
AB王
貝哥哥_鍵鼠叔
給我報報要重出江湖了嗎
AB王
貝哥哥_鍵鼠叔 : 何必呢,人家也是賺個稿費
Number5
匪諜大 (worship)
貝哥哥_鍵鼠叔
你讓我越來越想來寫一本白果醬了
一枚壞掉的熊貓大叔
Chienning
幾年前玩過4-bit MCU ... 還在上面寫了RSA和ECC ...... 絕對不是4-bit RSA
載入新的回覆