0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

將多核復(fù)雜性與不同的工具和架構(gòu)混合在一起

星星科技指導(dǎo)員 ? 來源:嵌入式計算設(shè)計 ? 作者:Bruce Edwards ? 2022-06-14 16:05 ? 次閱讀

假設(shè)不考慮金錢、時間或商業(yè)限制,并且只有物理學(xué)是唯一的限制,您將如何設(shè)計最終的計算機(jī)處理器?它會大規(guī)模并行,以極高的頻率運行,并使用奇異的光學(xué)或量子互連嗎?它會運行熟悉的軟件,如 x86 或 PowerPC,還是有新的優(yōu)化指令集?它會很大還是很?。克欠裥枰?a href="http://www.wenjunhu.com/v/" target="_blank">智能編譯器或獨特的軟件結(jié)構(gòu)?

多年來,為了讓處理器運行得更快,設(shè)計人員必須做的就是提高時鐘速度。在功耗和相關(guān)的散熱趕上速度增加之前,這一直很好。超越這一點,走得更快意味著除了走得更快之外還要做一些事情。

多核速度更快,但是……

從此開始了多核時代。如果兩個頭比一個好,那么四個肯定是兩倍好。在某種程度上,這個公理是正確的。但是今天的雙核和四核處理器的運行速度并不比上一代快兩到四倍。

這有兩個原因:硬件和軟件。當(dāng)今絕大多數(shù)多核芯片的擴(kuò)展性都不是很好,因此四核并不能真正提供四倍于單核實現(xiàn)的性能。片上總線跟不上,緩存一致性開銷會消耗性能,管道過于頻繁地停止等等。由于各種原因,當(dāng)核心數(shù)量翻倍時,傳統(tǒng)的微處理器架構(gòu)不會接近雙倍的性能。

在軟件方面,許多程序員不習(xí)慣或不熟悉多核編程。當(dāng)所討論的多核芯片包含不同類型的處理器內(nèi)核(通常稱為異構(gòu)架構(gòu))時,尤其如此。對一個處理器進(jìn)行編程已經(jīng)夠難了;使用單獨的工具鏈對四個不同的工具進(jìn)行編程要復(fù)雜得多。

異構(gòu)的,同質(zhì)的,還是只是龐大的?

可以提出一個論點,即不同的計算問題需要不同的資源,因此微處理器應(yīng)該包括一系列不同的處理資源。例如,一些任務(wù)可能需要信號處理能力,另一些可能需要單指令多數(shù)據(jù)矢量處理,而還有一些可能涉及復(fù)雜的決策樹和大量數(shù)據(jù)移動。

一種觀點認(rèn)為,沒有一種處理器架構(gòu)可以有效地處理所有這些不同的任務(wù)。因此,需要不同架構(gòu)的馬賽克。在極端情況下,可以設(shè)想一個處理器由截然不同的計算引擎組成,除了它們共享的包之外沒有任何共同之處。這些處理器實際上是共存的,而不是合作的。

相反的方法是選擇一個指令集并堅持下去。這無疑簡化了編程,但存在部署過于通用的處理器的風(fēng)險,這些處理器沒有針對特定任務(wù)進(jìn)行微調(diào)。另一方面,處理器是可編程的,改變軟件比改變硬件更容易、更便宜。

易于編程也不是一個小問題。延遲通常是由軟件錯誤引起的,而不是硬件問題。更復(fù)雜的是,程序員被多核處理器嚇得要死。讓一個高端處理器可靠地工作已經(jīng)夠難的了。你如何編程和調(diào)試其中的 10 個?使用一個內(nèi)核架構(gòu)進(jìn)行編程、調(diào)試和設(shè)計比處理具有不同指令集、架構(gòu)、總線、工具和調(diào)試方法的不同內(nèi)核的混合體更容易。

對比方法

英特爾AMD 已將大部分建議牢記在心,并生產(chǎn)了其傳統(tǒng) x86 架構(gòu)的雙核和四核版本。在某種程度上,這只是將資產(chǎn)從負(fù)債中提取出來。x86 是他們知道如何做的,向后兼容性對他們的市場至關(guān)重要?,F(xiàn)有的 x86 代碼在這些升級后的設(shè)計上運行良好,盡管它很少運行得比以前快得多,也很少使用額外的內(nèi)核。

相比之下,許多 RISC CPU網(wǎng)絡(luò)處理器 (NPU) 供應(yīng)商采取了截然不同的方法,將各種不同的處理器內(nèi)核和架構(gòu)混合到各種瑞士軍刀設(shè)計中。例如,IBM 著名的 Cell 處理器(圖 1)有一個通用處理器內(nèi)核和八個專用內(nèi)核,需要不同的工具和編程技術(shù)。幾條寬總線——一些環(huán),一些更傳統(tǒng)的——以各種方式連接核心。Cell 的性能令人印象深刻,但 PlayStation 程序員抱怨 Cell 是一頭難以馴服的野獸,部分原因是管理帶寬、延遲、總線事務(wù)和一致性都是游戲的一部分。

圖 1: IBM 的 Cell Broadband Engine 芯片包括九個處理器,其中一個基于 PowerPC。處理器通過元素互連總線連接,共有 12 個主控器。它被實現(xiàn)為四個反向旋轉(zhuǎn)的單向環(huán)。

poYBAGKoQYeAJBpFAANXntrKZqg173.png

將所有正確的硬件資源集中到單個芯片上是一回事。使組合可用是另一回事。具有混合架構(gòu)的大規(guī)模并行芯片結(jié)合了兩全其美:大規(guī)模多核復(fù)雜性與完全不同的工具和架構(gòu)。這就像在您的芯片中舉行聯(lián)合國會議一樣。

嚙合在一起

更好的方法是保留大規(guī)模并行部分,這是高性能的必要條件,但拋棄差異并將許多相同的處理器內(nèi)核連接到二維網(wǎng)格中。從概念上講,它與通過網(wǎng)絡(luò)連接單個計算機(jī)沒有太大區(qū)別,只是在微觀尺度上。

Meshing也有“grok-ability”的一面。程序員不難想到十個、100 或 1000 個相同的處理器內(nèi)核以相同的方式工作并以一種簡單但大部分透明的方式相互通信。1000 個元素中的每一個是否都針對給定的工作進(jìn)行了完美調(diào)整幾乎無關(guān)緊要。重要的是有 1,000 個處理器可以解決一個問題。

這種均勻的布置也有助于可擴(kuò)展性。雖然類似 Cell 的組合非常適合它們的特定任務(wù),但構(gòu)建更大或更小的 Cell 版本需要芯片制造商進(jìn)行大量的重新設(shè)計工作,接收端的程序員甚至需要更多的工作。現(xiàn)有的 Cell 代碼不會神奇地放大或縮小到具有不同資源組合的芯片。它可能根本不會運行。相比之下,在相同處理器的網(wǎng)格中增加 25% 的處理器可增加 25% 的計算能力,而不會破壞現(xiàn)有代碼。

這并不意味著設(shè)計這種類型的芯片是微不足道的。核心之間的帶寬是第一個挑戰(zhàn)。如果核心不能有效地相互通信,那么連接它們就沒有多大意義了。這種方法的一個例子是 Tilera 的 TILE-Gx100 處理器(圖 2),包含 100 個相同的內(nèi)核。在此處理器中,相鄰內(nèi)核之間的帶寬為 1,100 Gbps。每個核心在北/南/東/西方向有四個連接,100 核處理器的總帶寬為 200 TBps。大多數(shù)應(yīng)用程序很難使用其中的一小部分。即使是 Tilera 相對適中的具有 4x4 內(nèi)核陣列的 Gx16 芯片也擁有 20 TBps 的片上帶寬。

圖 2:其中一個 Tilera TILE-Gx 處理器內(nèi)核(其中 n 為 16 到 100)有效地處理內(nèi)核之間的帶寬。每個核心塊都有自己的 64 位處理器、L1 和 L2 緩存,以及與北/南/東/西方向的四個鄰居的網(wǎng)絡(luò)連接。

poYBAGKoQZCALoVKAAWOv-bzN6Q682.png

這種基于圖塊的設(shè)計的另一個挑戰(zhàn)是內(nèi)存延遲。如果內(nèi)存不夠接近或無法訪問,所有這些處理器都可能會停止運行。同樣,Tilera 將其設(shè)備分解為易于復(fù)制的切片,每個切片都有自己的本地 L1 和 L2 緩存。有趣的是,即使內(nèi)存是每個圖塊的本地內(nèi)存,它也可以是更大的共享分布式緩存的一部分,該緩存在所有共享者之間保持一致性。在某些情況下,程序員可能想要定義任意數(shù)量的緩存一致性島,必要時與相鄰的切片合作或忽略。

整個芯片架構(gòu)就像一個計算結(jié)構(gòu)。相同的邏輯塊、內(nèi)存塊和互連塊在行和列中復(fù)制,以制造更大或更小的芯片。就像 FPGA 或分形 Mandelbrot 圖像一樣,平鋪處理器在任何規(guī)模上看起來都是一樣的。大或小,它的編程方式相同??蓴U(kuò)展性平方。

與四核 x86 類似,但與 Cell 或 NVIDIA 芯片不同,TILE-Gx 網(wǎng)狀互連在引擎蓋下透明地工作。Mesh 流量不需要手動調(diào)整,事務(wù)也不需要手動調(diào)整以避免沖突或仲裁。盡管它位于中心,但網(wǎng)格基本上是不可見的,這正是程序員喜歡它的方式。

可擴(kuò)展性最終獲勝

與大多數(shù)生態(tài)系統(tǒng)一樣,許多不同類型的處理器將繼續(xù)存在。有些人會茁壯成長,而另一些人將勉強(qiáng)在某個特定的利基市場謀生。外部力量將淘汰牛群,就像圖形和網(wǎng)絡(luò)處理器一樣,篩選出那些不適合當(dāng)前環(huán)境的人。

在過去的幾十年里,可擴(kuò)展性和可編程性一直是關(guān)鍵。開發(fā)人員需要一種他們可以理解并能持續(xù)使用的芯片。他們想要一個增長路線圖,包括價格/性能規(guī)模的上下。讓它變得非常非??煲矝]有什么壞處。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19388

    瀏覽量

    230588
  • 芯片
    +關(guān)注

    關(guān)注

    456

    文章

    51060

    瀏覽量

    425768
  • NVIDIA
    +關(guān)注

    關(guān)注

    14

    文章

    5063

    瀏覽量

    103439
收藏 人收藏

    評論

    相關(guān)推薦

    是否可以6片TLV5638的REF腳并聯(lián)在一起接到基準(zhǔn)電壓?

    我設(shè)計的個系統(tǒng)中,用到6片TLV5638作為DA輸出,我使用外部基準(zhǔn)電壓作為REF的輸入,請問我是否可以6片TLV5638的REF腳并聯(lián)在一起接到基準(zhǔn)電壓? 這樣使用會有什么影響嗎? 如不能這樣使用,能否推薦
    發(fā)表于 12-27 08:27

    富士通鐵電白皮書,選擇鐵電存儲的4點理由以及技術(shù)原理分析

    鐵電存儲器(FRAM)產(chǎn)品ROM的非易失數(shù)據(jù)存儲特性和RAM的無限次讀寫、高速讀寫以及低功耗等優(yōu)勢結(jié)合在一起。
    的頭像 發(fā)表于 12-04 09:11 ?377次閱讀
    富士通鐵電白皮書,選擇鐵電存儲的4點理由以及技術(shù)原理分析

    混合合在先進(jìn)封裝領(lǐng)域取得進(jìn)展

    的更好的縮放。但是,盡管些芯片制造商確實在大批量制造 (HVM) 中采用了混合鍵合,但目前該工藝的成本太高,無法大規(guī)模采用。而且由于混合鍵合
    的頭像 發(fā)表于 11-27 09:55 ?328次閱讀
    <b class='flag-5'>混合</b>鍵<b class='flag-5'>合在</b>先進(jìn)封裝領(lǐng)域取得進(jìn)展

    隔離電源的地能接在一起嗎,隔離電源能不能直接共地使用

    不能接在一起。在使用隔離電源時,需要將隔離電源的輸入和輸出端的地線分別接在接地柱和接地線上,而不能將它們接在一起。實際上,如果隔離電源兩端的地線接在一起,會導(dǎo)致接地系統(tǒng)的干擾,降低系
    的頭像 發(fā)表于 10-01 16:27 ?3006次閱讀

    5G信號鏈與電平轉(zhuǎn)換結(jié)合在一起

    電子發(fā)燒友網(wǎng)站提供《5G信號鏈與電平轉(zhuǎn)換結(jié)合在一起.pdf》資料免費下載
    發(fā)表于 09-18 14:49 ?0次下載
    <b class='flag-5'>將</b>5G信號鏈與電平轉(zhuǎn)換結(jié)<b class='flag-5'>合在一起</b>

    模擬地和電源地能接在一起

    模擬地和電源地是否能接在一起,取決于電子系統(tǒng)的具體要求和設(shè)計。在電子系統(tǒng)中,地(Ground)是個共同的參考點,用于構(gòu)建電位參考平面。電源地是所有電源網(wǎng)絡(luò)的參考點,用于確保電源的穩(wěn)定性和系統(tǒng)的正常工作。模擬地則與模擬電路相關(guān),用于提供參考電位。
    的頭像 發(fā)表于 09-15 11:43 ?1408次閱讀

    DAC8771RGZ電流輸出端IOUT和電壓輸VOUT出端是連在一起的,是否可以不并在一起?

    請教下DAC8771RGZ這款芯片,看官方demo板,電流輸出端IOUT和電壓輸VOUT出端是連在一起的,是否可以不并在一起,分成兩路,單獨分別輸出電流或電壓嗎?
    發(fā)表于 08-08 07:59

    普通門電路的輸出端能否連在一起

    普通門電路的輸出端能否連在一起,取決于具體的應(yīng)用場景和需求。普通門電路的輸出端能否連在一起復(fù)雜的問題,涉及到數(shù)字電路設(shè)計、邏輯電路分析、信號完整
    的頭像 發(fā)表于 07-30 15:13 ?1009次閱讀

    MDD辰達(dá)半導(dǎo)體超高壓MOS系列:提升電焊機(jī)焊接效率與穩(wěn)定性

    電焊機(jī)是種用于焊接金屬材料的工具,可以兩塊金屬材料熔合在一起。
    的頭像 發(fā)表于 05-08 17:41 ?891次閱讀
    MDD辰達(dá)半導(dǎo)體超高壓MOS系列:提升電焊機(jī)焊接效率與穩(wěn)定性

    DC/DC選型:了解電感參數(shù)的基本含義

    電感是種相對簡單的元件,它由纏繞在線圈中的絕緣線組成。但當(dāng)單個元件組合在一起,用來創(chuàng)建具有適當(dāng)尺寸、重量、溫度、頻率和電壓的電感,同時又能滿足目標(biāo)應(yīng)用時,復(fù)雜性就會增加。
    的頭像 發(fā)表于 03-30 14:29 ?1727次閱讀
    DC/DC選型:了解電感參數(shù)的基本含義

    文詳解多路復(fù)用的類型

    多路復(fù)用最初是在電話中發(fā)展起來的。多個信號被組合在一起,通過根電纜發(fā)送。
    的頭像 發(fā)表于 03-05 15:44 ?3620次閱讀
    <b class='flag-5'>一</b>文詳解多路復(fù)用的類型

    CYUSB3014的SPI和Slavefifo與fpga傳輸為何不能一起使用?

    數(shù)據(jù)傳輸可以用,只用Slavefifo與fpga傳輸也可以,但是兩者結(jié)合在一起就不可以,線程不知道怎么切換。注:SPI與Slavefifo并不是同時與fpga傳輸,SPI是只要接收到上位機(jī)命令就傳輸
    發(fā)表于 02-27 06:23

    RS485接口EMC電路設(shè)計方案分析

    RS485用于設(shè)備與計算機(jī)或其它設(shè)備之間通訊,在產(chǎn)品應(yīng)用中其走線多與電源、功率信號等混合在一起,存在 EMC 隱患。
    的頭像 發(fā)表于 02-21 09:21 ?2211次閱讀
    RS485接口EMC電路設(shè)計方案分析

    作為導(dǎo)線,銅線和鋁線有何區(qū)別?可以接在一起嗎?

    作為導(dǎo)線,銅線和鋁線有何區(qū)別?可以接在一起嗎? 銅線和鋁線是兩種常用的導(dǎo)線材料,用于電力輸送和電器連接。雖然它們都具備導(dǎo)電功能,但在性能、用途和優(yōu)勢方面存在些區(qū)別。本文將對銅線和鋁線進(jìn)行詳細(xì)比較
    的頭像 發(fā)表于 02-18 13:52 ?6777次閱讀

    可編程邏輯陣列(PLA)有什么用?

    PLA可以根據(jù)用戶的需要進(jìn)行編程,實現(xiàn)各種邏輯功能。通過編程,可以多個邏輯門(如與門、或門、非門等)和觸發(fā)器組合在一起,構(gòu)建復(fù)雜的數(shù)字邏輯電路。
    的頭像 發(fā)表于 02-02 11:30 ?3207次閱讀
    可編程邏輯陣列(PLA)有什么用?