-
1 # 繁星落石
-
2 # 天高雲淡10769
7nM晶片何止萬億隻電晶體?做晶片的的軟體已經能把壞掉的單元排除,只在良品的單元上安排電路,所以不用擔心晶片報廢,真正的使用者也很聰明把這些減量晶片稱為單核,雙核多核就行了。
-
3 # bolepai772
據我所知,是會有壞的,不過有容錯機制。同樣的晶圓,有的切出來是能做i7,有的只能是i5,就是因為有壞的。簡單理解就是壞的少就是i7,壞的多就是i5。
這個問題應該有大牛能回答,期待更好更專業的答案。
-
4 # 早起去散步
許多瞭解晶片結構的朋友可能都思考過這樣一個問題,大型或者高精度晶片的內部有幾十億個電晶體,而且精度控制在幾奈米的範圍內,比如華為麒麟990 5G處理器,不到一個指甲蓋大小的空間裡封裝了103億個電晶體。那麼 晶片是如何保證其持續且高效地執行的呢?
其實題目中的疑問可以分成兩個問題,一是晶片中的幾十億個電晶體是否一個都不能出錯?二是晶片如何保持高的可靠性?
1.首先是晶圓的製作,我們需要將石英砂製成高純度的單晶矽圓柱體,之後將其切片打磨,製成我們需要的晶圓片;
2.接著是進行光刻,掩膜,機械,化學處理等過程,著名的荷蘭阿斯麥(ASML)光刻機就是靠這個加工過程賺取豐厚利潤的;
3.最後是焊接和管腳處理,塑裝,切割,測試等,每一步都需要精細處理,才能製成合格的晶片。
所以在首先在設計之初,晶片會設計一些多餘的電晶體,也就是晶片會預留一些保留區域,假設在製作過程或使用過程中某個電晶體壞掉了,則系統會自動遮蔽掉這一組電晶體,從保留的多餘電晶體開發出一組電晶體來取代它。
再者,晶片製造過程中,產商也會嚴格把控生產過程,畢竟廢品率的居高不下也意味著成本的居高不下。
所以製造過程的高精密度,例如車間的超淨和超靜,材料的純度,減少人工錯誤提高製造過程的自動化等等。最後在封裝測試階段,也會進行各種檢測,確保送到使用者手上的產品是能夠正常執行的。
我們知道軟體程式碼的開發速度很快,而且可以修修改改,但是硬體不行。產商當前釋出的新產品,基本上都是該公司的研發人員兩到三年前開始設計,歷經2年測試,歷經硬體架構師設計,測試工程師測試,找出bug並進行修改,最後由後端工程師將程式碼轉化為實際的電路,進行佈局和佈線。
同時硬體本身就能夠在某些錯誤造成時進行恢復,只要恢復時間夠短,一般就不會察覺到系統曾經的失敗和錯誤,也基本上不會影響它們的正常運用。
總結中國每年都會進口大量高精度的晶片,其中主要原因是中國在高精度晶片的製作上受制於西方各國,從製作晶圓的原材料,到製作工藝過程中用到的高精度光刻機以及各種儀器,中國的技術儲備都與西方國家有著較大差距。
-
5 # 科技與生活視野
首先,我們需要提純矽。矽片越純,雜質的干擾就越小。
換句話說,矽片本身就有極高的純度,以致於用於CPU生產的一千億個矽原子中,只允許含有最多一個其它原子。
——千億綠豆中只有一顆紅豆太誇張?萬一五顆紅豆好死不死恰好一起出現在10釐米範圍內呢?
僅僅純度高還不夠。用來做晶片的矽,它還必須“生長”為“單晶矽”——也就是說,矽原子的晶格排布必須整齊劃一,像多晶矽那樣雜亂無章是不行的。
如果你問“如此高純度的矽是如何提純的?”,那麼我只能回答“這是生產廠家的技術祕密,全世界都沒多少人知道”。
單晶矽裡面,雜質分佈並不均勻。雜質富集區很容易導致(意料之外的)漏電流增大、晶格缺陷等諸多問題(現代晶片製造甚至會藉助各向異性刻蝕等手段,晶格缺陷必然導致刻蝕出的溝道畸形),這些都可能加大晶片的失敗率、增加它的發熱量、限制它的效能。
因此,普通的電晶體,6個9的矽便可滿足需求;大規模積體電路就必須9個9;CPU這樣的超大規模積體電路,11個9的高純矽才可能把良品率提高到可行範圍——晶片行業可不缺聰明人,10個9夠用他們就絕不會像個冤大頭一樣,掏大價錢買11個9的昂貴材料。畢竟純度加一個9可不是多敲一下鍵盤那麼簡單:你猜人類已經能造12個9的矽材料了為什麼不大量應用呢?
有了最好的原料,才有可能做出最高品質的成品——讓你在沾了油的宣紙上寫字,這副作品是不是就很難完美了?一樣的道理。
任何方面微乎其微的、拿最好的光學顯微鏡都看不清的一丁點缺陷,都可能導致晶片良品率直線下降——甚至,哪怕一切到位,哪怕Intel這種業界頂尖公司,新工藝上馬,良品率往往也相當的低。經常需要長時間的除錯、磨合,才能保證良品率達到可用範圍。
是什麼問題導致 10 納米制程晶片良品率過低?會對下游產品有何影響?
不僅光刻機本身。它所處的環境也都要求苛刻。
比如,它必須置於嚴格無塵的環境裡。因為落到晶片上的一粒灰塵,就可能毀掉數百個閘電路。
類似的,如果不採取嚴格避震措施,光刻機工作時,800米外一輛汽車開過,引起的顫動都可能導致大批晶片報廢!
總之,通過數不清的方面無數科研人員、工程師以及技術工人的各種努力,彌補一切方面的一切短板,該妥協的地方酌情妥協,人類終於可以保證,CPU晶片上光刻出的閘電路,出錯概率可低於億分之幾。
對於普通級別的晶片,這個工藝水平已經可以保證“出錯幾乎是不可能的”——因此頗有一些人以為“做晶片什麼都不用管壞了就扔就行”。但他們並不知道,別人為了把晶片產線質量穩定度提高到這個程度付出了多少辛勞。
但對CPU這樣最為尖端的、同時挑戰整合度和可靠性的晶片,這樣往往也還不夠。
因此,人類在設計CPU電路時,便將其模組化;然後故意製造出冗餘的重複模組來;當CPU光刻完成後,通過測試,遮蔽掉不良模組(不良模組不僅僅是出錯的模組,還包括熱穩定性不佳等缺陷)。這樣哪怕發生了少量錯誤,製作成功的機率也不會太低。
Intel i3 和 i7 的成本差是多少?如果成本相當,為什麼不全生產 i7 呢?
更進一步的,如果不良模組實在太多、以至於整個核心都不能用了,還可以遮蔽掉整個核心——原始設計是8核,遮蔽4個就可以當4核賣了。六核雙核等情況依此類推。
(當然,有時候運氣好良品率特高,但捨不得掏錢的使用者對低端CPU有需求,高階的生產太多又賣不掉,廠商也可能故意把高階CPU的核心遮蔽掉、頻率限低,當低端CPU賣給使用者——這和主題無關,就不討論了)
但是,請注意,這個冗餘設計既浪費芯片面積,又加大了研發投入、增加了諸多方面的複雜性,只有類似CPU這樣挑戰人類極限的工程,迫不得已才會採用——所以才說,拿“壞了就遮蔽/壞了就扔”當真相的都欠缺常識。
打個比方的話,問“我要經常開車跑長途,這可能做到嗎?”
正確回答是,先挑選質量足夠高的車,汽車工業剛起步時幾十公里就得修一次的爛車是沒法用的(提高原料質量工藝可靠性);然後選用更容易排錯維修的車型(設計時考慮可維修性);最後,真跑廢了就扔掉再買一輛。
嗯,跑長途基本靠扔車?你覺得這回答過腦子了嗎?真拿扔車不當回事的那叫F1,不是長途司機。
——那些張嘴就拿遮蔽說事的,多半是懶得動腦。他們就沒想過,如果拿6個9的矽片造CPU,這密密麻麻的缺陷,靠遮蔽能遮蔽過來嗎?更不用說隨便抓把石英砂拿電爐土法上馬搞的渾濁不堪的垃圾矽了。
必須先有一個極高穩定度的平臺,才有耍遮蔽之類小聰明的餘地。
——換句話說,遮蔽是很有效,但它在這個問題裡,是最不重要最沒技術含量的因素。
我們知道,記憶體有很多很多單元,但匯流排只有一條。那麼,當CPU要訪問64g記憶體中的其中一個單元時,它就要在地址線上輸出一組電平,使得該記憶體單元被選中(實際相當於通過一組與門,切斷了除被選擇單元外其它任何記憶體單元的輸出訊號),然後就可以讀到正確的值了。
實際上,計算機裡的一切,上至暫存器下至鍵盤,都是以同樣的邏輯控制輸入輸出的。只不過未必都在總線上(或者說沒有統一編址)而已。
CPU內部也是如此。核心之間有通訊線路,核心內部,從加法器到暫存器再到快取,全都有類似匯流排的資料―地址線路相互連線。
因此,只需記錄錯誤單元的地址,避免訪問它甚至不給它供電,就可以達到遮蔽的目的了(反過來也行:比如記錄暫存器EAX等和內部地址的對應表,不註冊壞掉的暫存器或其它單元,也可達到遮蔽的目的)。
這種遮蔽甚至可以是自動的:通過檢測,給壞掉的單元置位;然後在CPU自檢流程排除它們即可。
總之,可行的做法很多很多,具體某個廠商用了哪種是不可預測的。我們只需知道“能做到”就對了。
假專家只知道硬連線、跳線,說明他還是有點電路基礎的。但他顯然不懂數位電路的地址機制,不知道就連暫存器都是有地址的(但注意和記憶體地址區分。它是CPU核心內部地址,這個地址甚至對同一顆CPU的另一個核心都可能是不可見的);有地址,只要不是短路型故障(短路故障還需要從供電上遮蔽),就可以用簡單的“避免訪問”達到“遮蔽”目的。換句話說就是:這人計算機原理學的一塌糊塗,數位電路基本還是沒入門水平。大二相關科目也不知怎麼混過去的。
當然,我拿暫存器舉例是為了說明問題,證明哪怕暫存器這種粒度都有辦法遮蔽,並不代表CPU就真的細緻到了暫存器這個粒度。實際上,有工藝精度保證,粒度太小了反而增加成本,工程是需要根據實際情況取捨的。
——這段嚴格來說是廢話,不用說大家都知道;但萬一遇到手電筒專家一樣只照別人不照自己的傢伙……還是明確寫出來省事。
首先,成熟的硬體本身就非常非常的穩定,可以長時間執行不發生任何錯誤(但很多情況下,錯誤在所難免。比如電磁干擾、機械振動、宇宙射線等等)。
其次,計算機硬體本身也可以自帶校驗功能。比如伺服器經常用帶ECC校驗的記憶體條。
當硬體出錯時,它可以自動發現,然後通過中斷通知軟體處理(或自動嘗試恢復)。
然後,程式設計師在寫程式時,也會有很多錯誤檢查;一旦校驗出錯,程式便立即退出。
為了保證7X24小時安全性,業界有許多成熟的經驗甚至現成的框架。
比如,有一種硬體叫“看門狗(watchdog)”,它相當於一個自動遞減的計數器;如果軟體執行正常,那麼它就應該不停復位這個計數器,避免它遞減到零;如果計數器遞減到零,就說明軟體執行出錯了;於是晶片立即重啟、然後軟體嘗試恢復執行——微控制器系統經常用到它。
當恢復時間足夠短時,人就不會覺察到系統曾經失敗過(但一般會記入日誌,以便分析故障原因);對很多系統,包括汽車/飛機/衛星上的各種系統,只要恢復時間足夠短(依設計允許的餘量而定),也不會影響它們正常執行。
PC/伺服器一般不用簡陋的看門狗,它們有完善得多的錯誤發現/恢復機制。包括但不限於許可權檢查、錯誤中斷以及程式語言提供的結構化異常等等機制。
出錯了的程式會立即退出?你可能會說,不對啊,這樣服務不就中斷了嗎?
沒關係。我們可以準備一個監控程式,定時檢查,發現服務程式失敗就重新拉起它。
這個監控邏輯也可置於服務應用本身,然後同時執行兩個同樣的應用,讓它們互為備份。這就是著名的“雙程序相互監控、相互喚醒”——這個技術之所以如此著名,是因為有人拿它不辦正事,而是拿來做流氓軟體坑使用者了。嗯,好的技術落到壞人手裡就是這種下場。
對各種網站/搜尋引擎之類龐然大物,依靠單臺伺服器的自我恢復能力已經不夠。這時候還可以通過雙機熱備份/多機熱備份(多臺機器執行同樣的程式,只是其它機器只執行但不輸出結果;當其中一臺出錯時,另一臺便可立即頂替它)、叢集計算(如Google通過map-reduce靈活組合使用數萬甚至更多臺計算機,可自動分配任務、自動發現故障節點並遮蔽它)等等更為複雜、高階的架構,使得偶發故障不會影響它們的服務能力。
更進一步的,針對天災、戰爭甚至核戰爭等等罕見事件,人們還開發了“異地容災系統”,使得哪怕城市A的服務節點因重大事故無法服務,遠隔千里的城市B的服務節點也可立即接替它,從而達到“不可摧毀”的目的。
化不可能為現實,這就是人類的智慧。
回覆列表
現在晶片的電晶體數量是百億以上,但是一個都不能出錯的說法還是需要保留,晶片設計本身會考慮冗餘問題,不是一個電晶體壞了或者不能正常工作了,就會導致晶片直接罷工,晶片自己會遮蔽掉損壞的核心來避免影響整個晶片的效能。