能夠填補我們中高端微處理器的空白——高性能通用處理器芯片

能夠填補我們中高端微處理器的空白——高性能通用處理器芯片

我是郭海峰(熱鏈聯合發起人),向大家彙報一款來自德國的高性能通用處理器芯片。

這是一款具有顛覆性創新價值的,能夠廣泛應用到雲端的服務器、個人計算機、包括移動通信、互聯網大數據、人工智能,還有邊緣計算等一些領域。那麼這款產品能夠適用的應用範圍十分廣闊,經過【中國工程院院士,中國科學院微電子研究所,包括清華、北大的一些教授】做過一次評審,認為這個芯片是能夠填補中國在中高端微處理器的空白

對於中國半導體處理器這一塊領域的行業水平,其實是遠遠落後於美國的,我想今天在座的各位,包括這個領域的專家以及各位投資人,你們都很清楚,我們中國長期面臨著缺芯的局面,然後中國半導體方面每年的進口金額,是在每年2000億美金,進口的額度已經遠遠超過石油——這種命脈級的進口商品。

那麼今年沸沸揚揚的美國全面制裁封殺中興通訊,美國所有的高科技公司不再向中興通訊提供任何芯片,這幾乎導致中興突然死亡,接下來的圖片是美國國務院公佈的一個消息。

能夠填補我們中高端微處理器的空白——高性能通用處理器芯片

在去年中國政府支持一個私募基金Canyon Bridge,計劃已13億美金去收購美國FPGA的廠商萊迪斯Lattice,這個被特朗普政府否決了,其實Lattice只是FPGA廠商的第三名。

大家可以通過鏈接去了解下判決。(複製鏈接到瀏覽器)

https://www.hpcllp.com/cases/PACT%20Final%20Judgment.pdf

今天我給大家彙報下歐洲航天局他們做的一塊芯片叫HPDP(High Performance Data Processor,高性能數據處理器)。大家看這頁照片,

能夠填補我們中高端微處理器的空白——高性能通用處理器芯片

這是2016年6月份的時候在瑞典的哥德堡,由歐洲航天局的芯片處理專家,來自於空客的Diego做的彙報,是專門用來監測太空碎片的一款人工智能的處理芯片,基於粗粒度可重構陣列架構的處理器,這個架構實際上是Martin 15年前的技術,而我們今天晚上彙報的這項技術呢,會遠遠比歐洲航天局在使用的芯片更高級,這是2016年的PPT,歐洲航天局是在去年2017年完成流片的。

那麼歐洲航天局實際上規劃的系統,是包括一些地面和太空當中,一些在軌的衛星,其中有一種衛星叫SBSS,用於監測太空當中各種碎片。這幅圖描述了歐洲航天局整體的規劃。

能夠填補我們中高端微處理器的空白——高性能通用處理器芯片

這幅圖是整個太空碎片監測芯片整體的數據流,體現各種算法,主要使用了人工智能的處理。

能夠填補我們中高端微處理器的空白——高性能通用處理器芯片

歐洲航天局太空監測的衛星主要採用光學的方式獲取圖像,人工智能的處理方法來監測的。

這幅圖是一個硬件的設計圖,基於Martin 15年以前,當時在德國的Pact XPP公司研發的這款產品,到現在都可以滿足歐洲航天局的使用要求。

能夠填補我們中高端微處理器的空白——高性能通用處理器芯片

科技部曾經組織過一次專家評審,對Martin當前最新的技術進行彙報。剛才向大家展示的歐洲航天局的芯片當時還叫做粗粒度可重構陣列,大家也留意到了它的設計圖裡面是沒有CPU的,也就是說它本身既是主處理器,也是協處理器。

但是他15年前這個技術,當時指令處理只是基於順序的,沒辦法做到亂序處理的。經過最近幾年,Martin他們的研發,目前已經實現了亂序處理和循環加速,今天后面會把技術特性給大家更加細緻的彙報。

那麼中國科技部組織論證會議,當時由中國國際技術轉移中心以及亞創聯進行合辦的。

能夠填補我們中高端微處理器的空白——高性能通用處理器芯片

我向大家介紹下合影當中的人,從最左側是亞歐科創董事長郭巍(熱鏈聯合發起人)。第二個是我本人郭海峰(熱鏈聯合發起人),第三個是葉曉城

,他是Marvell美滿電子的前高工。第四個是清華的吳曉明教授,第五個是中科院微電子研究所主任黑勇主任。右邊這位女士是德國處理器廠商英飛凌Infineon在中國區業務的創辦人。

她旁邊的是航天772所的姚全斌書記,航天772所非常出名,我們北斗衛星上的芯片就是他們生產的。因為它要用的芯片和普通的芯片不一樣,太空中射線很強,普通的CPU會被太空射線擊穿,他們的芯片都要進行防輻射加固。再往右的是北大的陳鍾教授。然後他右邊的是今天要介紹的技術發明人Martin Vorbach。

最中間的是中國工程院院士、清華教授金國藩院士。在他右邊的是PeterWeber,是英特爾歐洲區業務的創辦人,最近也是積極的國際投資人。在他右邊滿頭白髮的老人也是中國工程院院士、北京理工大學教授周立偉院士。在周院士右側是

駱東淼,是首控集團總工。旁邊的這位女士是韓國世宗汽車研究院的李慧珠。右邊數第三個是中國國際技術轉移中心的黃平主任(熱鏈技術成果轉移產業顧問 / 團隊顧問)。右邊數第二個是俄羅斯的亞娜Yana女士。最右邊的是戴姆勒的前高級副總裁Hans-Peter,剛剛退休,最近為歐洲公司做諮詢的服務。

在這次會議上,各位專家認為Martin的最新技術擁有國際領先水平、非常高的成熟度,能夠填補我國在中高端微處理器的空白,提升中國芯片產業的競爭力,對於經濟社會意義重大。

在這次會議上,我作為Martin的翻譯,用中文向大家彙報了這項技術。今天晚上的講解也請大家放心,我要彙報的內容都是經過院士、教授審核過的,我會為這次彙報內容的真實性、準確性負責。


到底這是一項什麼樣的技術讓中國頂尖的教授、院士非常認可呢?


我先要從芯片行業現狀講起,我們當前生活的時代是一個異構的時代,也就是說整個處理器是一個片上系統SoC,就是把不同的內核,例如CPU、GPU等不同內核,採用不同架構內核,組裝到同一款芯片上,從而能夠讓不同內核完成各自擅長的工作任務。

例如,英特爾以168億美金收購Altera,是FPGA的廠商,其實是因為英特爾的CPU在一些重要的一些算法面前無能為力,表現太差了,就要採用異構的芯片來提高速度。比如中國的科大訊飛,據我瞭解的相關報道,其人工智能處理方面就採用了英特爾CPU+ Altera FPGA異構的體系。

能夠填補我們中高端微處理器的空白——高性能通用處理器芯片

今天給大家演示的芯片就是典型的異構芯片,這款芯片來自於華為,是華為的子公司叫華為海思。他們生產的麒麟970的芯片,因為很多人都會用到這款芯片,比如大家用華為Mate10,P10手機裡的芯片就是麒麟970。

像這款芯片,華為利用它在營銷方面取得了很大成功。

但是我們要看一下這款芯片裡面的結構,我們會留意到它其實是用了8核CPU,麒麟970是採用了4個ARM公司的Cortex-A73內核,4個是Cortext-A53的內核,共8個CPU核。然後使用了12個GPU核。然後又集成了一個NPU,他們對外宣傳叫神經網絡的處理器,這款處理器上面的CPU、GPU來自於英國的ARM公司,MPU來自於中國的公司叫寒武紀, 他們生產的一款ASIC的人工智能芯片。還用了一個圖像處理的數字信號處理的芯片。

那麼這款芯片雖然華為在營銷方面做了很多的文章,也為華為在芯片的自足提供了堅實的基礎,比如不用再買高通的芯片了。

因為它能夠在片上系統上能夠做到很好的集成,

但是反過來說這能代表未來嗎?

你看這款芯片裡面集成了四種內核,8個CPU,12個GPU,一個神經網絡的NPU芯片,DSP數字信號處理的芯片,這種異構的架構體系,內核彼此之間進行一些通訊,這裡面就不可避免的遇到異構存在的存儲牆的問題,還有編程的複雜度,比如說CPU用一些C語言進行編程;GPU用OpenCL進行編程最方便;NPU寒武紀有一些單獨的人工智能指令,針對神經網絡所需要的一些指令等等情況,為軟件編程帶來很大難度。

那麼我們想想有沒有一款芯片結構,不需要這麼多異構的核,用同一種類型的核起到同樣的作用呢?

第一,能夠起到不同內核的高速性能處理的表現;

第二,統一的內核架構,支持指令集,可以像C語言一樣簡單進行編程。

那麼這就是我們今天彙報的體系叫GPPA(General Purpose Processing Array, 通用計算陣列)。剛才我講的華為海思的異構芯片,我認為這不是未來。

未來的話應該是用統一的內核,來起到各種異構核同樣的處理能力,又具有良好的簡單編程特性,又能克服多核系統存儲牆問題造成的性能瓶頸。

能夠填補我們中高端微處理器的空白——高性能通用處理器芯片

這張圖給大家介紹一下,目前市場上主流的處理器劃分方式,從左往右看,左側的GPP通用處理器,特指超標量的CPU,它的靈活性最高,但是運算處理的能力及能耗比最低,可能很多人對區塊鏈、比特幣挖礦的情況比較瞭解的話,比特幣最早的時候就是用普通電腦CPU來挖礦的,隨著礦工的增多、計算算力的提升,CPU很快的在處理能力上跟不上了。

比特幣先用CPU,後面用GPU,現在比特大陸用了些ASIC的芯片,ASIC芯片處理性能最高,但是它的應用性、靈活性最差;然後之前提到CGRA的概念,包括歐洲航天局使用的芯片,主要是德國的Pact XPP公司為代表的。

能夠填補我們中高端微處理器的空白——高性能通用處理器芯片

那麼今天晚上要介紹的內核叫GPPA。這款芯片大家可以看到兩個特徵。

一是多態性,同一內核在執行特定計算任務時,能夠呈現並超越,超標量CPU、DSP、GPU和FPGA的運算特點和性能優勢。換句話說這種內核可以在執行不同計算任務時呈現出不同內核架構的特點,從而實現全面替代。

二是同構性,處理器單個內核GPPA是若干通用處理單元所構成的陣列,支持同構方式來組成多核SoC芯片。正是因為多態性和同構性決定了這款芯片不僅僅是解決中國高性能CPU缺失痛點,而且這款芯片可以同時替代GPU、DSP、FPGA這些異構的芯片。

或許有一些投資人會問,你這麼說很狂妄,是不是我理解錯了。我可以很負責任的告訴大家,我彙報的內容都是科技部組織論證會議上全部都談論過的。

我後面會詳細給大家講,為什麼我們能夠做得到這種同構、多態的特點,從而實現對於不同內核的全面替代。

然後這個GPPA叫General Purpose Processing Array 通用處理陣列。它其實是傳統的CPU和CGRA兩相結合的新穎的架構,很多CGRA處理器當協處理器時是不支持指令的,主要是一種構令的概念,對於一些基礎的門級器件在上面做成Network,形成不同的構令,還會有一些門陣列的信號處理層。在GPPA裡面這兩項已經不需要了。

能夠填補我們中高端微處理器的空白——高性能通用處理器芯片

那麼新增什麼呢?第一是基於指令的發射機制,可以全面的支持CPU指令。第二是實現單時鐘週期內的多指令發射,目前最好的CPU就是4發射。我們這邊可以實現更多,在講同步多線程的時候也會詳細的進行彙報,它有自動化的單元尋址,自動化陣列網絡的設置,這裡面也有一個隱式流水線的一種概念。

和CPU相比第一個去掉了保留站,因為一般的CPU在指令發射的時候,把指令發射在保留站裡面的,在GPPA裡面不需要這個。第二個是重排序的緩存,解決一些不同指令之間數據依賴性的問題,它要藉助於一個大的寄存器堆,來緩存不同指令之間傳遞的數據,而GPPA不需要,為什麼不需要?是因為它不同的處理單元之間,它是通過一種自動化陣列單元互聯的方式,一個指令運算完成以後,直接它的輸出結果輸送到下一個指令的處理單元上,而不是緩存到重排序寄存器堆裡面,然後等待下一個指令從裡面進行讀取,在性能方面帶來非常大的優勢。

和CPU相比的話,GPPA的寄存器堆是用陣列的資源來實現的,不需要專門建立重排序緩存區,然後基於陣列的方式來實現保留站和指令窗口的方式。然後後面都會有相應的一些例子來說明如何實現的。

我們知道保留站和重排序緩存或者說一個CPU,其實現在它的芯片面積上,90%都被浪費了,只有10%真正用於處理的,後面有一副圖來詳細的去介紹這個特性。

總結一下:GPPA是CGRA和CPU的這麼一個結合體。GPPA它是從一個加速器為基礎的,在支持亂序處理和循環加速的優勢下,全面支持這個指令集,從而擁有了和傳統的超標量的CPU相比的話,擁有了很大的性能優勢。

能夠填補我們中高端微處理器的空白——高性能通用處理器芯片

大家也可以看下這幅圖片,這幅圖片裡面就是講這種新的架構。

它的主要架構是什麼特點呢?

大家可以看右側的這幅圖,這裡面最下方是一個個不同的處理單元,它們共同組成一個陣列,能夠非常快的進行處理。通過這種方式,第一個實現了循環的加速,第二個實現了亂序的處理,第三個基於陣列能夠實現同步的多線程,然後不同的內核之間組成同構的,而不是異構多核的片上系統。這種架構第一個計算性能得到非常大的優勢,比CPU快很多。

第二個是硅片面積,都是同構的芯片,和Intel的多核CPU相比,取消掉了重排序的緩存去以及保留站,對於這種情況下整個芯片的面積得到非常有效的利用,芯片面積決定了製造成本,製造成本會更低。

第三個能耗的問題,針對循環加速來講,在能耗方面等到很大的優化,還有一個方面待會也會講,在多核之間的高速Cache採用樹形的總線結構,目前來講主流用的,目前來講都是一種環形結構的,那麼樹形的方式Cache能夠對於核間的存儲牆問題得到一個極大的改善。

這副圖片已經非常準確的講清楚了,我剛才的那句話,為什麼這款芯片能夠全面的替代CPU、GPU、FPGA、DSP以及ASIC的一些芯片,原因的話就是它具備這幾個特性。

能夠填補我們中高端微處理器的空白——高性能通用處理器芯片

這幅圖更加方便的去講解了一下,就是這款內核它具備多態性,顛覆了異構的SOC 存在的各種各樣的痛點。

最左側的這幅圖實際上我們是和英特爾的Haswell做了對標,這款GPPA是如何呈現出超標量處理器的亂序處理的特點,這塊我要去交代清楚,GPPA在取代不同內核的時候,其實並沒有在硬件層面上模仿任何人,誰的都沒有去模仿,而是因為它是一種陣列,大家看中間那副圖。

不同的處理邏輯,由陣列當中的不同單元來承接計算任務的。它不同的單元之間可以通過陣列的網絡連接,能直接連接在一起,從而實現時序的調度,也就是重排序緩存和指令窗口。第二個是它的數據不需要像一個公用的寄存器堆,不像重排序緩存區裡面那樣反覆讀寫數據,從而提升性能的處理,也實現指令間的並行。

那麼首先講一下循環加速模式,為什麼在技術性能和能耗方面都具有相當大的優勢。因為大家都知道目前CPU架構特點是超流水線、超標量、亂序處理的內核,CPU具有以上三個特點。

但是哪怕是最先進的CPU,包括英特爾。他們的每一個指令都要經過取指、譯指、發射、執行、數據寫回寄存器堆等等,同一個指令劃完成不同的環節來進行處理,從而實現一個超級流水線的概念。因為超標量是指令間的,超流水線指的是同個指令之內的。

那麼這種情況下,左側餅圖,那麼基準的CPU的能耗是這麼分佈的,取指(取出指令)和譯指(翻譯指令)。因為哪怕你軟件編譯出來的二進制機器指令,也是不能被CPU執行的,需要CPU進行一個譯指的操作,還有從指令的高速緩存裡面來進行指令的讀取、數據的高速緩存、數據的通道以及寄存器堆的讀寫。

能夠填補我們中高端微處理器的空白——高性能通用處理器芯片

大家可以看到第二幅圖,在第一幅圖的時候我們描述的是一個循環,學過編程的人都很清楚循環,在這裡面同一段代碼會被反覆執行,比如循環多少次。

為什麼說循環加速很重要呢?

因為在編程的時候你編好的程序,主要是以循環的方式來進行執行的,比如說很簡單的字符串的比較,現在都是64位的處理器,那麼很長的字符串就要通過循環的反覆進行字節比較。那麼CPU在同一個循環的不同迭代處理時,取指、譯指、發射這些工作全部都要做一遍,哪怕是同個指令被執行幾百上千上萬次,整個流水線都要全部跑一次。

而GPPA這種處理器就不用了,在循環的第一次執行的時候,就會把這些指令發射到陣列裡面不同單元上,用陣列處理單元。一旦發射後,在循環加速的模式下,它是不會從單元中退出來的,然後這條指令就駐守在這個單元裡面,等待下一次循環的執行。

這種情況下可以看一下第二幅圖,這樣子的話,第一個我從高速的指令緩存裡面取指不需要了,可以關閉掉,因為我所有指令已經發射到陣列裡面了,取指根本不需要。

第二個我這邊每一步執行完後,我也不需要把我的數據再寫回到寄存器堆裡面,這是不需要的。因為每一個指令,我的輸出正好是作為下一個指令輸入的時候,就會通過一個網絡連接,在兩個不同的處理單元之間建立這麼一個電路,所以說前面的指令完成了以後,它的輸出直接作為下一條指令的入參,就傳遞過去了。

這種情況下在循環加速的情況下,其實大家可以看得到整個的指令處理工作就不復存在了。那麼這種情況下,它就呈現出來像ASIC芯片那樣,針對這個循環體的算法,它把整個硬件結構進行一個優化,所以說可以像一個ASIC芯片一樣達到非常高的處理能力,這就是我們說的循環加速的處理方式。

駐守在不同單元並通過硬件來進行直接連接,數據依賴性的時序處理也不會像普通的CPU那樣做個重排序緩衝區,用高速緩存來調度不同指令處理,這就是一個循環加速。

這種情況下,至少50%的能耗所需要的工作就會暫時性的被停用掉。

你的循環是執行1萬次,只要在第一次的時候處理指令,後面的9999次再也不用在指令的方面浪費你的性能和你的功耗。大家不要小看這一點。我看到一份數據,英特爾的芯片50%的能耗是花在瞭解析指令上,

因此英特爾的芯片為什麼沒辦法用在手機上呢?

就是因為它是複雜指令集CISC,能耗太大,你的手機電池是滿足不了它如此浪費的,所以這就是在手機方面幹不過ARM的一個重要原因,ARM是精簡指令集RISC。

能夠填補我們中高端微處理器的空白——高性能通用處理器芯片

這張圖片講的是亂序的處理,亂序處理指的是不同指令之間的並行。剛才我們也講到指令發射,普通的CPU一次只能發射4個指令,進入保留站裡面去,指令發射進去以後能不能執行呢。

第一個它受到資源限制,因為我們說CPU是電腦的大腦,在CPU裡面真正執行計算的叫做算術邏輯單元ALU。只有這個才是真正去執行計算任務。因為普通的CPU芯片其實算術邏輯單元非常少,只有一行,所以它能夠同時併發處理的指令不是很多。

第二個是依賴於它的時序關係,比如說1個數要先加1再除以2,那麼你在執行的時候就不能先除以2再加1,這樣的話你的計算結果就是錯誤了,並不符合你的算法的要求。

能夠填補我們中高端微處理器的空白——高性能通用處理器芯片

所以說硬件在指令處理時候呢,就要根據時序上的要求。也就是說,我上一個指令完成了以後,要利用它的輸出結果來作為我下一條指令的輸入參數。那麼這種情況下,就決定我只能在剛才那條指令後面才能處理,哪怕是現在還有很多算術邏輯單元被浪費了,也必須等到前面的指令執行完畢了,以後才能進行處理。

但是假如是說我兩條指令彼此不相關,各自所需要的輸入參數也都好了。這種情況下就可以進行並行處理了,所以說目前來講CPU都是支持亂序處理的,但是它使用的代價就是我們剛才講用到一個重排序的緩存區,要有一個指令之間的調度,還要有一個寄存器的組,就會浪費大量芯片的面積。我後面會有一幅圖來講。

其實大家去看英特爾、龍芯的芯片,86%的區域是與計算無關的間接開銷,就是內存管理的一些東西,而這個GPPA的內核架構裡面的運算單元是粗粒度的,每一個陣列單元,指令調度器、寄存器和重排序的緩衝區相當於3合1了,指令之間的依賴性是通過一種網絡把不同單元互聯在一起的,就沒有寄存器組的間接開銷。

換句話說,在GPPA裡面不同單元之間,實際上是用了一個空間換時序的概念,它的電路物理連接就解決了時序的問題。

舉個例子來說明,GPPA的內核是怎麼樣亂序處理的。比如說這個指令,可以看左側的這張列表-指令發射單元,模擬英特爾X86體系的這套指令。我們可以看到右側是一個4*4的16個處理單元,這裡只是演示。

我們計劃做的服務器芯片內核,打算做的是256個處理單元。這裡面的話呢,每一個時鐘週期之內都有指令呢,都可以往陣列裡面空閒單元進行發射,一旦裡面的數據,即輸入參數都就緒了,那麼這個處理單元就會處於一種激活狀態,這樣子的話輸入參數已經就緒了,他就可以立即執行,不需要從別的地方進行調度,又不用請求其他的運算單元,因為算術邏輯單元就集成在這個處理單元之內。

橙色的就是屬於一種等待的狀態。打個比方,上條指令執行完了以後,數據從上一條指令單元,傳到這個單元格子裡面就可以進行執行了。比如灰色是處於一種已經處理完了,就可以處於一種結束的狀態,然後新的指令可以發射進去,就是這麼一種特點。

能夠填補我們中高端微處理器的空白——高性能通用處理器芯片

給大家講一下同步多線程的問題。我們GPPA架構的特點,它的運算基於陣列,裡面的運算處理單元非常多。比如說256個,這種情況下直接給它帶來非常大的、同步多線程SMT的性能優勢。我們知道現在所有最好的CPU生產廠商英特爾,只能支持單核雙線程;超微公司AMD從前年開始,最新款芯片的單核,才從一個線程變成支持兩個線程。

這種情況下,普通CPU很難去提升了。因為第一個,一個指令週期之內只能同時發射出4條指令,這4條指令又要劃分出來更多線程,相對來說不是很合適;第二個,算術邏輯單元太少,芯片90%都是內存,算術邏輯單元太少想實現同步多線程也不可能,而GPPA單核能夠支持16到32個線程。打個比方,1個線程用的8到16個處理單元,我們在256個情況下實際上可以達到30多個線程,遠遠超過現在任何一個CPU廠商的工作模式。

而且在異構的情況下,能夠很好的解釋為什麼GPPA能夠克服存儲牆的問題,存儲牆指的是執行一個計算任務,比如有的任務GPU能夠很好執行的,有的就很頭疼;能夠用得到的指令還是用GPU,用不到的情況還是用CPU處理。不同的內核之間要傳遞一些參數的時候,因為它們不在一個核裡面,就需要一個多核之間的總線結構,通過它來進行數據的傳遞,這種情況下就會導致存儲牆的問題。

大家可以自己去查詢一下存儲牆的問題。這個存儲牆問題,對於GPPA就不存在這個問題了,是因為這個處理單元的一部分是可以執行CPU的任務,另外一部分單元其實是在同一個核裡面就是執行了以前GPU的任務,現在這個同構核就可以實現了,可以重構GPU的樣子。

這種情況下,它們之間的數據通信,就不會存在存儲牆的問題了,就壓根用不到總線,同一個內核裡面不同的單元可以通過網絡連接把它的輸出結果直接作為下一條指令輸入的,這種情況下和普通CPU相似,但處理GPU任務效率上有很大提升。那麼這樣子的話,所有的處理單元都會得到非常良好的運用,對於多併發任務的處理都會處理效率非常高。

講到這裡,我們一起回顧一下,指令間並行處理的能力。打個比方,第一個,GPU是典型的一種單指令多數據的處理,精度高64位,而GPPA也可以實現單指令多數據SIMD,在這種單一指令多數據處理的方式,這裡面64位可以同時供8個8位數據工作。這種情況下,人工智能對精度要求並不高。

第二個,可以用很多指令進行指令間並行,有充足的處理單元256個,在亂序處理時可以並行的指令非常多。因為實話說,哪怕你算術邏輯單元比較多,但是你每個指令週期都只能發射4條指令。

像在這種情況下,你也沒辦法處理更多的並行處理。而這邊不一樣,它在循環加速的時候所有的指令都是存在那個地方的,這種情況下,完全可以相當於一個數據驅動的處理器一樣,實現很高的指令間並行,在循環加速的時候處理的能力。再到現在同步的多線程,在軟件的實現上能夠把原來不同的內核在相同內核裡面執行。

能夠填補我們中高端微處理器的空白——高性能通用處理器芯片

存儲牆問題?現在英特爾在使用一個環形結構,也就是說在L1以上就是通過環形方式。這也就導致一個問題:我有一個數據要進行更新的時候,我在某一層裡面進行更新的時候,它需要把整一層的數據都要在不同的層重新複製,所有的數據都要在環形來進行復制。

在這麼一種情況下,更新緩存時間的開銷和數據的處理量就會非常大,而這邊是因為樹狀的總線結構,比如說是4叉樹或8叉樹,L1以上的會用到樹狀,L1以下的在內核裡面,把一個數據內容在內核間處理。

根據離核近的數據劃分出讀和寫哪個多,是讀大於寫,還是寫大於讀,還是說讀與寫是比較平衡的,根據不同的策略通過多叉樹的方式,來進行尋址,讀比較多的數據會把它放在樹中較底層內核比較近的地方,你就可以就近進行讀取。但一個數據大家很少去讀它,不同的核之間都要去寫它,這種情況下就會把它放在更高層。

這種情況下多核寫數據,都寫在同一位置上,不需要頻繁的在不同層之間數據複製來維持它的同步,時間的開銷非常大,帶來的好處體現在數據傳輸、耗時方面。右側GPPA和英特爾有個比較,英特爾是指數性上升的,這邊是線性的上升。

能夠填補我們中高端微處理器的空白——高性能通用處理器芯片

這幅圖是英特爾Haswell最近幾年新的設計,綠色的才是真正執行指令處理的單元,其他紅色的區域全部是沒必要的、間接的開銷。整個芯片90%的硅片面積都已經浪費掉,而且能耗高,把數據搬來搬去的,非常消耗能量,非常耗電,處理性能卻有很大幅度的下降。

能夠填補我們中高端微處理器的空白——高性能通用處理器芯片

能夠填補我們中高端微處理器的空白——高性能通用處理器芯片

這幅圖就是多態性的描述,GPPA是多態的,可以同時替代CPU、GPU、DSP不同的內核。可以對標CPU,綠色區域是它的ALU算術邏輯單元,可以重構到GPPA內核系統裡面,寄存器堆、保留站、重排序的緩存區,GPPA都可以良好地映射過去。而且這裡面有一個突出的循環加速的能力,這麼多的處理單元。

它所帶來處理上的更多優勢,包括同步多線程的一種能力,都會比CPU在性能方面和能耗方面得到很大的改進。因為循環加速這種模式又克服了,例如FPGA、CGRA等沒辦法通過指令來編程,典型的如FPGA,FPGA是不支持指令的。它必須寫在到構令裡面configuration files,通過構令切換電路的。有的時候構令的切換,速度都會到秒級,這種情況處理起來就很耗時。

能夠填補我們中高端微處理器的空白——高性能通用處理器芯片

這幅圖講述的是GPPA,如何去對標DSP數據處理的芯片內核結構的,對標的是亞德諾公司的blackfin。

能夠填補我們中高端微處理器的空白——高性能通用處理器芯片

這幅圖講的是GPU的一個案例。GPU裡面也有一個陣列的概念。典型的處理模式是單指令多數據SIMD的處理,不同層級的處理單元之間,跨層也是屬於硬連接的。這種結構在處理模式上,是一個典型的循環加速。

GPU尤其是英偉達,他們提出一種概念叫GPGPU,就是通用型的GPU,也就是能夠良好的支持全指令集,但遺憾的說GPU從來沒有達到CPU良好靈活性。GPPA在處理的時候也可以呈現出來它特有的處理特點。GPU在處理一些非單一指令數據的算法的時候,還是非常的麻煩的。而最新GPPA的內核,都能夠良好的支持起來。

能夠填補我們中高端微處理器的空白——高性能通用處理器芯片

這就是FPGA的樣例。FPGA就是我剛才講的時候,中國打算以13億美金買一個Lattice的,FPGA廠商的老三,美國直接否決掉。這款芯片對標的是Xilinx,它的處理能力,在GPPA中也可以完全實現出來,我們GPPA最早是一個CGRA,和FPGA這兩項技術都是屬於可重構計算的技術,FPGA俗稱是精細粒度,而GPPA或CGRA是粗粒度。

主要區別:FPGA是門級的,而GPPA當中,整個算術邏輯處理單元、指令調度、輸入和輸出,整個數據的通道都是完全可以重新配置的,它是屬於不同的處理單元之間進行重構,每個單元都是比較粗,比如說我們剛才講到的的,單核是256個處理單元。

這款芯片,它是一種多態同構的芯片。這種芯片不僅僅能夠改變我們中國的CPU中高端芯片的缺失,嚴重的落後於ARM、英特爾,在進行比較的時候,這款芯片完全全面支持指令集。第二良好的亂序處理。

這款芯片不僅僅替代CPU,它可以同時替代DSP、GPU、FPGA這些不同的異構的芯片,未來設計的芯片是可重構的,異構的方式不再需要,所以具備替代的能力。

當然也不是絕對的替代,例如GPU,我們自研的CPU出來以後還是需要顯卡,只是不需要加速的顯卡;例如FPGA,所有處理器的設計,在邏輯設計的過程當中都會用FPGA來進行功能上、邏輯上的驗證,這種情況GPPA是不能實現的,它只是在處理能力上更好。

再複述一下這款處理器架構的特點:第一個是全面性的異構核可替代,第二能耗更低,第三芯片的面積更小,12寸的硅片可生產出更多的芯片,單價低,處理性能好,功耗低、編程的簡便性。


分享到:


相關文章: