2016-10-23
朱潔大資料和雲計算技術
15年6月,intel正式宣布167億美元收購fpga生產商altera。此交易為該公司有史以來涉及金額最大的一次收購案例。167億美金不是小數目,intel 為啥花這麼高的代價收購一家fpga廠商?對x86架構的計算機系統結構會帶來什麼影響?看我們慢慢分析。
fpga是什麼?
fpga(field-programmable gate array),即現場可程式設計門陣列,它是在pal、gal、cpld等可程式設計器件的基礎上進一步發展的產物。它是作為專用積體電路(asic)領域中的一種半定製電路而出現的,既解決了定製電路的不足,又克服了原有可程式設計器件閘電路數有限的缺點。
fpga採用了邏輯單元陣列lca(logic cell array)這樣乙個概念,內部包括可配置邏輯模組clb(configurable logic block)、輸入輸出模組iob(input output block)和內部連線(interconnect)三個部分。 現場可程式設計門陣列(fpga)是可程式設計器件,與傳統邏輯電路和門陣列(如pal,gal及cpld器件)相比,fpga具有不同的結構。fpga利用小型查詢表(16×1ram)來實現組合邏輯,每個查詢表連線到乙個d觸發器的輸入端,觸發器再來驅動其他邏輯電路或驅動i/o,由此構成了既可實現組合邏輯功能又可實現時序邏輯功能的基本邏輯單元模組,這些模組間利用金屬連線互相連線或連線到i/o模組。fpga的邏輯是通過向內部靜態儲存單元引導程式設計資料來實現的,儲存在儲存器單元中的值決定了邏輯單元的邏輯功能以及各模組之間或模組與i/o間的聯接方式,並最終決定了fpga所能實現的功能,fpga允許無限次的程式設計。
fpga並行執行的原理
fpga最大的特點除了可程式設計之外,還有乙個非常重要的是指令是並行執行的。
cpu是在同一時刻只能執行乙個任務,微控制器是cpu,cpu裡基本的單元是邏輯控制單元來執行程式。但是fpga不是cpu,許多的邏輯單元構成的它們的內部結構不一樣,就是說它不是執行程式的,可以把fpga看成是一推與門,非門,查詢表,觸發器的組合。對fpga編的程式其實不是讓它用來執行的,也就是說在出廠之前,fpga內部元件之間的連線已經完全固定,我們的程式設計也只是在此基礎上選擇哪些相連、哪些斷開罷了。而是fpga的內部結構,也就決定它內部這些與門非門觸發器的連線方式。與門非門觸發器根據外部引腳決定輸出,引腳同時變化,fpga就有不同的輸出,所以可以說是並行執行的。
fpga適合場景
1、微軟公司的基本設計思路是將fpga納入輸入請求與輸出資料的直接通路,這意味著不再需要經由網絡卡將資料分流至fpga,再通過內部系統匯流排接收返回結果。陣列能夠自行處理任務,或者將資訊傳遞給主機的英特爾x86處理器以進行必要操作。另外,fpga還能夠在傳輸過程中對資料執行更多附加操作。
舉例來說,fpga能夠在資料觸及執行於裝置上的應用之前,對其進行加密與解密。
這一設計方案的結果在於,全部雲服務皆藉此實現了顯著的延遲削減效果。「通過讓fpga與網路交換機直接通訊,每套fpga皆能夠直接同資料中心內的其它fpga經由網路實現通訊,且無需涉及任何cpu軟體。
intel的膠水晶元
回到intel的收購動作,intel肯花167億美元收購altera公司絕不是衝動的愛情,altera不僅是intel的代工合作夥伴,而且intel很早就考慮處理器與fpga電路的整合了,早在2023年6月份intel高階副總、資料中心級連線系統部門總經理diane bryant就對外提到了他們會推出定製化的至強處理器,客戶可以根據自己的需要定製兩種不同的fpga晶元,一種是intel把fpga晶元指令整合到xeon處理器中,另外一種就是intel推出fpga+xeon處理器雙晶元封裝的晶元,充分發揮fpga可程式設計的優勢。
當時intel並沒有提到他們合作用的fpga晶元來自哪家公司,現在可以公布了,這家公司就是被intel收購的altera公司,如今變成子公司了,各種合作也更方便了。指令整合是不容易實現的,最快的方法就是將fpga和cpu封裝在一起。
前面說到這種處理器將採用雙晶元封裝,intel對這種封裝其實也很熟悉了,還記得intel推出的第一代pentium d雙核處理器嗎?intel當時為了盡快拿出產品,presler架構的pd雙核並不是原生的,而是兩個單核處理器封裝在乙個晶元內,被玩家戲稱為膠水雙核,未來的處理器大體上也會是這種結構。
未來發展判斷
1、巨頭intel的推進,預計cpu+fpga可能會有乙個大的發展。
2、fpga由於其可程式設計行,並行能力加上和cpu深度整合,計算機體系結構,如網路/記憶體的作用都可能發生變化。
3、fpga在人工智慧領域的發展還剛起步,還有更廣空間。
個人新作《大資料架構詳解:從資料獲取到深度學習》一書,已由電子工業出版社出版,京東(現貨),**,噹噹,亞馬遜全網開售/預定,有興趣的同學可以詳細了解:
為什麼寫《大資料架構詳解》這本書
計算機系統結構 計算機 計算機系統的基本結構
乙個完整的計算機系統是由計算機硬體系統和計算機軟體系統兩部分組成。硬體是計算機的實體,又稱為硬裝置,是所有固定裝置的總稱。它是計算機實現其功能的物質基礎,其基本配置可分為 主機 鍵盤 顯示器 光碟機 硬碟 軟盤驅動器 印表機 滑鼠等。軟體是指揮計算機執行的程式集,按功能分系統軟體和應用軟體。1 由運...
計算機系統結構
計算機體系結構就是指適當地組織在一起的一系列系統元素的集合,這些系統元素互相配合 相互協作,通過對資訊的處理而完成預先定義的目標。通常包含的系統元素有 計算機軟體 計算機硬體 人員 資料庫 文件和過程。其中,軟體是程式 資料庫和相關文件的集合,用於實現所需要的邏輯方法 過程或控制 硬體是提供計算能力...
計算機系統結構 計算機系統結構的分類 筆記
一 flynn分類法 1 指令流 機器執行的指令序列 2 資料流 指令呼叫的資料序列,包括輸入資料和中間結果 單指令單資料流 single instruction stream and single data stream,sisd 二 cisc與risc 1 cisc complex instru...