• 7

當時脈上不去時,開始打多核戰?

田臥勇太 wrote:
電子的傳遞有所謂的物理上限,好比說光一秒可以繞地球七圈半,
這是光速的物理上限了~再快也無法更快了,
所以CPU的設計也面臨的相同的問題,不管如何設計機構,
傳遞訊號就是有一定的時間,...(恕刪)

跟電子傳遞時間沒關係,要被這點限制住還很遙遠
跟 logic 0 與 logic 1 之間的變換速度有關

logic 1 和 logic 10 分別是高電位與低電位,從高電位變成低電位(或是反過來),是需要時間的
經過越多的元件,輸入與對應輸出的時間差就會越大,通常是因為寄生電容的關係

反應時間高於訊號的週期的話,出來的資料就會不正確了。你得到的輸出就不是對應到當下的輸入,而是前一次輸入了。
這只是其中一種原因。

時脈越高常常發熱就越強,來不及散熱會讓 CPU 超出他的工作溫度,造成他運作不正常
製程進步 與 電壓降低 都能有效的減少廢熱
可是製程進步還會造成DIE體積變小
如果廢熱減少的程度沒有與體積變少的程度成反比 則熱密度會上昇
例如: 廢熱變為原本的一半 但是 體積縮小為原本的四分之一
如此一來 雖然總廢熱減少了 但是熱密度卻提高為原本的兩倍
熱密度提高 會使得散熱越來越不容易
所以 現在散熱器越來越喜歡用高導熱的金屬 因為它能加速把熱從DIE傳到散熱器上
散熱不易 就容易讓CPU溫度提高
高溫會導致熱雜訊(相機上感光用的CCD或CMOS就常遇到這問題)
再加上為了省電與減少廢熱的產生 CPU的電壓越降越低
而較低的電壓卻使得熱雜訊所造成的影響越來越明顯 也就是說 訊噪比(SNR值)越來越小
在上述因素的增減之下 無限制地提高CPU時脈只能在理論上達到
有人將這個廢熱的問題稱之為熱能之牆
想當初我跟我學長去香港出差 晚上睡不著兩個人在房內"熱烈"討論這問題時
他信誓旦旦地跟我講說 不可能買得到4GHz的CPU (超頻不算)
如果買得到的話 他頭要剁下來給我當椅子坐...
反觀如果採用低頻多核 要達到提高效能的目的 會比高頻單核容易一些
只是多核要面對的第一個問題就是向下相容性
因為絕大多數的舊軟體都沒有想到有一天會有多核心的情況
所以 為了未來長遠的利益 I家的台灣公司去年弄了個研討會
真正的內容其實是催眠在場的所有人(大專教師)
往後的程式語言要教學生寫for多核的程式
X的~ 人腦只有一顆 除了瘋子(周伯通)與笨蛋(郭靖)之外 有誰的思考是多核的啊!?
單核的思考才是人類最原始的思考方式
程式語言的發展應該是越來越接近人類語言
要轉成for多核的程式? 那是compiler的工作好不好~
也許是我的腦袋裝漿糊 排斥新東西 但至少我覺得這不是一條正確的路
cappirossi wrote:
要轉成for多核的程式? 那是compiler的工作好不好~
也許是我的腦袋裝漿糊 排斥新東西 但至少我覺得這不是一條正確的路...(恕刪)


兩邊都要配合啦,程式設計者要能夠寫出正確的 multithread 程式,還有 compiler 也有在研究怎麼協助產生平行化可以 multi-issue 的程式。

平行有很多層次,以前單核的時代,就有 superscalar,可以讓 CPU 同時執行兩個以上的指令,但是這兩個指令大抵就是前後關係,不能跨越行程的安全限制之類的。或者像是 vector 指令可以同時處理很多筆資料運算。大部分 CPU/DSP 的 floating point units 也是獨立運作的,某種程度上相當於是另外幾個 CPU。再上去有 SMP 就像有些人提到的,伺服器用 8 or 12 way 是很早就有的。介於兩者之間的有 intel 的 hyperthread,明明是一個,但是對於作業系統來說可以安排兩個互不相干的 thread 一起執行。也有不對稱的 multi-processor 像是 PS3 的 Core。在上去則有很多電腦組成的 cluster,不過與一般人關係較小囉。

Compiler 可以在 superscalar 與 FPU 的層次幫忙,IBM 在 Core 的架構上也有開發特殊的 compiler,但是巨觀來說還是得靠英明的 programmer 把事情規範劃分清楚囉。

其實大多數時候,需要高效能的都是集中在少數複雜的運算項目,只要有專人開發可以利用到多核心的程式庫就可以了,其他不重要的部分就單一 thread 也沒甚麼差。但是至少有資訊可以讓你判斷哪些部分可能可以利用到這類程式庫,或者去訂製。
這不是噱頭吧@@

就好像賽跑一樣

一個人跑再怎麼快,他就是這麼快
如果跑接力賽的話,你要他一個人跑完全程嘛??

如果分給兩個,三個,四個......甚至更多
是不是就能更輕鬆完成呢??

只是目前許多程式還沒完全支援多核心
但已知的程式在多核心的表現上卻有明顯的結果

話說以前在單核心,我用我的電腦邊聽音樂,遊戲掛賣,邊看友站論壇,這樣就有點吃不消了= =+
現在來說用雙核心的,明顯改善不少,
對於要大量處理一些程式的人,可能感受更明顯!!!

分工的好處就是團結力量大^^
cappirossi wrote:
製程進步 與 電壓降...(恕刪)

IBM POWER6 CPU 早已超過4G很久了。
記得以前學校老師是這麼解釋的:

1. 光速很快,但是在 3Ghz 時,一個時脈的時間,光還跑不到 10cm (Google 回答光速=299792458 m/s),然而電的速度又比光慢......

2. 為了讓處理器更快的執行指令,處理器中像是 pipeline 之類的設計不可少,為了跟上這個同步供給指令與資料的速度,L1 Cache 也是必須的,於是處理器的核心加上 L1 Cache 就有一定大小,而這個大小與光速的限制,決定了時脈未來成長的空間已經有限了,時脈要再上去,大概就功能比較簡單的特殊用途處理器比較有機會,但是要到達 10Ghz 甚至更高 ....... 很辛苦吧!。

3. 一個人打不贏怎麼辦?那就打群架吧!所以多核心出現了......
我覺得往多核發展也沒什麼不好啊
CPU現在速度就已經比RAM跟硬碟快太多了
用電腦大部份的時間不都是CPU在那邊閒著 然後RAM跟硬碟在那邊跑得很喘嗎...
趁CPU時脈拉不上去這機會 讓RAM跟硬碟的技術追上來一點也好
CPU這邊也來想辦法把bus speed拉高好了
限界のない可能性は、この手に。
Paul500 wrote:
1. 光速很快,但是在 3Ghz 時,一個時脈的時間,光還跑不到 10cm (Google 回答光速=299792458 m/s),然而電的速度又比光慢.........(恕刪)


我覺得這個問題很有趣
所以稍微算了一下
3GHz 的時脈就是說每秒有 3*10^9 的pulse電訊號
也就是說每個 pulse 要耗時約 3.33*10^(-10) 秒

光速為 3*10^8 (m/s) 換算後得知
如果有載子可以跑得跟光速一樣快(現實中不可能有)而它接受 3GHz 時脈的命令
那麼 在兩次 pulse 之間它跑多遠?
答案是跑了 [ 3.33*10^(-10) ] * [ 3*10^8 ] = 10 公分

10公分是多長? 其實也就是 10^5um (10萬微米)

而目前已經進入準量產的 最新進的半導體製程是 32nm (intel 的 cpu)
它的電晶體 source 到 drain 的距離大約是幾十到 100nm 遠遠小於 10萬微米

這個意思就是說 如果你的載子的移動速率有光速那麼快的話
它的物理極限大約可以到 上千 THz
能想像時脈 1000THz 是什麼世界嗎?

當然 冷靜一點 ...... 電子的移動速度不可能那麼快的啦!!
所以 學術界有些研究在探討更高的 mobility 時大多不是以電子為主角

據我所知是可以用自旋 (spin up/down) 來當作 digitized 0 與 1 構成數位的概念
這個就有可能使得 "訊息" 傳遞達到 "光速"
不過 未來發展的路?? .... 還是無敵遙遠!

(感謝網友指出錯誤地方已用紅字修改)
Everything is nothing ............. without love.
TANIKI wrote:
我覺得這個問題很有趣...(恕刪)


GHz是10的九次方才對阿...
TANIKI wrote:
我覺得這個問題很有趣...(恕刪)

呃, 有那麼難算嗎? 之前的老兄沒算錯哇, 應該是:
(29,979,245,800)cm/(3,000,000,000)Hz = 9.99cm/Hz
若電子速度與光速相同, 則每個周期只能跑10cm.
公喵不帥, 母喵不愛. 公喵愈壞, 母喵愈愛. 不帥的公喵想要母喵愛, 就只好學壞.
  • 7
內文搜尋
X
評分
評分
複製連結
請輸入您要前往的頁數(1 ~ 7)
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?