• 14

CPU為何現在只到64位元?

b2342132 wrote:
就小弟的認知而言,一...(恕刪)

那是錯誤的引用, 多半原本書寫的是"通用暫存器"的寬度才叫做CPU的bit數. 至於接腳數, 現在cpu都幾百根接腳, 根本不是拿幾根腳來算. 有人會用cpu的資料的data bus寬度來算, 那也是錯誤的算法. 你若去考試的話, 人家問Core 2是多少位元的CPU, 寫它128bit下去是拿不到分數的. 因為這個年頭, 資料匯流的寬度, 通用暫存器寬度, FPU暫存器寬度, mmx暫存器寬度都不一樣, 真正用來評斷CPU屬於幾位元, 還是以通用暫存器寬度為準.
另, 64bit與32bit差在哪兒? 差在你一次可以運算的資料長度. 舉個例子來說, 最常用的搜尋功能好了, 我想要搜尋"64bit CPU", 一共吃掉9個byte, 若是32bit的處理器, 要做3次比較, 若是64bit處理器, 則僅需要2次比較. 光是個比較字串就有差別了, 更別說使用資料庫應用程式時, 多半是cpu位元數愈多愈佔便宜的.
幾年前螢幕顯示24 bit 的顏色,也就是1677萬色,號稱"全"彩,
現在的螢幕都是32 bit可顯示近43億色...
所以造成我這個電腦白癡對16bit/32bit/64bit電腦的理解, 在於這個電腦能接收或輸出的"極限"資訊量...

比方說,一個1 bit 的電腦,一個輸入輸出的週期,可產生的資訊只有兩種,就是0跟1
輸入:你好嗎?
輸出:只有 好/不好 兩種答案

一個2 bit 的電腦,一個輸入輸出的週期,可產生的資訊只有四種,就是00/01/10/11
輸入:你好嗎?
輸出:好/還好/不好/很差 四種答案
但是程式設計者卻不見得要讓電腦輸出四種答案

一個32 bit 的電腦,一個輸入輸出的週期,可產生的資訊有近43億種
輸入:你好嗎?
輸出:好/還好/不好/很差...N種答案
但是我相信目前沒有程式設計者可以找出43億個不同詞彙來讓電腦輸出N=43億種答案

-------有錯勿怪,從我舉的例子就知道我是電腦白痴...

拜google神說:64bit是定義在ALU register或Instruction Pointer的寬度上...這是什麼碗糕?





sambad wrote:

那是錯誤的引用, ...(恕刪)


舉個例子來說, 最常用的搜尋功能好了, 我想要搜尋"64bit CPU", 一共吃掉9個byte, 若是32bit的處理器, 要做3次比較, 若是64bit處理器, 則僅需要2次比較.
-----------------------------------------------------------
我舉的例子跟大大比起來,真是幼稚的可以...汗顏啊!

js1657216 wrote:
舉個例子來說, 最常...(恕刪)



JS 也沒錯啦....

你說的是 bit 數能表示的最大範圍, 1bit 只有0~1, 就是2種,

4bit (有4bit 的cpu 哦)就是 0~15, 8bit 就是 0~255....

能表示的數字範圍就是 0~ (2^n -1 ) ...

而多位元也是從1bit 的運算單元組合而成的, 愈多位元, 就須要更多的1bit運算單元合在一起.

而bit 之間的運算就有 加法器/減法器 等等.....

而要執行 32bit 的加減法, 就要有32 個1位元的加減法器併在一起, 才能做加減法運算....

愈多位元, 電路就愈多, 若有更多指令, 就會有更多電路,

早期的 IC 技術, 單一面積可以放的電晶體不多, 所以受於製程及技術限制, 無法將 CPU做到高位元,

而現在的技術進步了, 就只在做出來的市場在哪裏了....

而多cpu 平行處理技術的開發, 似乎比高位元cpu 來還的有效率,

因為 三個臭皮匠, 勝過一個諸葛亮....


libraleu wrote:
JS 也沒錯啦......(恕刪)


這個倒是點到重點
一般會比較注重在頻率跟核心數量上
由於製程進步的關係...核心變多了
可是die會有一定的面積限制...過大...除了費用...廢熱也是問題
所以後續比較可能由頻率上調教

評斷CPU是幾位元....目前應該是指通用暫存器長度比較合宜
要增加位元數量的話
首先要面對的就是指令集架構的變更
如果可以找到相容的模式...會讓事情變得比較簡單 (現在x86轉向64位元就是這樣)
如果沒有...那就得用模擬執行的技術...光是要跑現有軟體就需要大幅度OS的修正支援
這些通通要研發成本.....還得客戶要用才行

在製程技術上....32bit 變成 64 bit
die 裡面變得到處都是bus線繞來繞去的
更何況是 128 bit or up.....
線一堆繞來繞去就會有磁效應
而且空間的使用效率也不好
我想這也是想在CPU內用光序列或者無線傳輸的原因吧
b2342132 wrote:
就小弟的認知而言,一個CPU有多少位元是看他的資料匯流排的接腳數
假設有一顆CPU的資料匯流排有16隻接腳,那他就是16bit的CPU,有32隻接腳的話就是32bit
就這個定義來看,其實從Pentium第一代就是64bit的CPU了,因為他的資料匯流排接腳有64隻
為什麼我會這樣講?
因為每本課本都是這樣寫的.......XD (恕刪)

這樣的話,您的那門課可以當掉了....

這個問題早先在386SX上吵的曾經吵得沸沸揚揚,照您的"課本"定義,386SX應是16位元的CPU,但386SX是不折不扣的32位元CPU,在386DX上能玩的、利用到IA32架構特殊能力的軟體(例如盛極一時的QEMM386),386SX通通可執行。說到Pentium,Intel曾經在white paper中正式說明Pentium雖然有64-bit的data bus,但並不代表它是一顆64位元處理器,而仍然是IA32的架構。

sambad wrote:
因為這個年頭, 資料匯流的寬度, 通用暫存器寬度, FPU暫存器寬度, mmx暫存器寬度都不一樣, 真正用來評斷CPU屬於幾位元, 還是以通用暫存器寬度為準.

sambad兄講的中肯,希望還有用data bus寬度來定義CPU是幾位元迷思的網友參考一下,CPU是幾位元的,要從程式設計師寫程式的可揮灑空間來看,不是看看press release的行銷說法或是知道data bus多寬就能決定的。

記得以前老師上課,印象中cpu界定位元數是以寬度,至於說那個東西的寬度,小弟上課沒注意聽所以....
只是說cpu進展這麼慢是因為研發佈出來嗎?還是只是商業考量?
ycweng wrote:
這樣的話,您的那門課...(恕刪)

小弟認知有限
能否請ycweng大大解釋何謂data bus?
有些回應的大大都說到作業系統方面的問題,導致這麼慢演進!但是AMD INTEL這種製造商不是只看微軟的臉色來發展cpu吧!像是linux是開放原始碼的,要修改成64位元應該也是很快阿!
  • 14
內文搜尋
X
評分
評分
複製連結
請輸入您要前往的頁數(1 ~ 14)
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?