SoC 設(shè)計(jì):當(dāng)片上網(wǎng)絡(luò)滿足緩存一致性時(shí)
出處:維庫電子市場(chǎng)網(wǎng) 發(fā)布于:2024-01-24 17:03:39
CPU 內(nèi)部的寄存器數(shù)量相對(duì)較少,但速度極高。CPU 可以在單個(gè)時(shí)鐘周期內(nèi)訪問這些寄存器。然而,它們的存儲(chǔ)容量很小。相反,訪問主存儲(chǔ)器以讀取或?qū)懭霐?shù)據(jù)會(huì)占用許多時(shí)鐘周期。這通常會(huì)導(dǎo)致 CPU 大部分時(shí)間處于空閑狀態(tài)。
1965年,英國計(jì)算機(jī)科學(xué)家Maurice Wilkes提出了高速緩存和內(nèi)存緩存的概念。這涉及到與 CPU 相鄰的少量快速內(nèi)存(稱為高速緩存)?!案咚倬彺妗币辉~本身源自法語單詞“cacher”,意思是“隱藏”或“隱藏”,其含義是高速緩存向 CPU 隱藏主存儲(chǔ)器。
該過程基于兩個(gè)關(guān)鍵點(diǎn)進(jìn)行操作。首先,當(dāng)CPU上運(yùn)行的程序執(zhí)行涉及主存儲(chǔ)器中的一個(gè)位置的操作時(shí),它通常會(huì)在多個(gè)附近的位置上執(zhí)行操作。因此,當(dāng)CPU從主存請(qǐng)求單個(gè)數(shù)據(jù)時(shí),系統(tǒng)會(huì)從附近的位置引入數(shù)據(jù)。
圖 1展示了涉及簡單高速緩存的內(nèi)存層次結(jié)構(gòu)的視圖。
這種方法可確保在需要時(shí)可以隨時(shí)獲取相關(guān)數(shù)據(jù)。其次,程序通常對(duì)同一數(shù)據(jù)集執(zhí)行大量操作。因此,將活躍使用的數(shù)據(jù)存儲(chǔ)在距離CPU近的緩存中是有益的。這種鄰近性允許更快地訪問和處理數(shù)據(jù)。
SoC 上下文中的緩存
對(duì)于 SoC,緩存在片上高速、高功率、低容量 SRAM 中實(shí)現(xiàn)。同時(shí),主存儲(chǔ)器在 PCB 上以片外方式實(shí)現(xiàn),通常采用低速、低功耗、大容量 DRAM 的形式。
為了限度地減少延遲,設(shè)計(jì)人員在當(dāng)今的許多 SoC 中添加了多層緩存。這些通常包括三個(gè)級(jí)別:L1、L2 和 L3。L1緩存距離CPU近,容量,但訪問時(shí)間快,通常在1-2個(gè)時(shí)鐘周期內(nèi)。L2 緩存距離 CPU 稍遠(yuǎn),提供更高的容量,但訪問時(shí)間較慢,通常在 4-10 個(gè)時(shí)鐘周期之間。L3 緩存距離 CPU 仍較遠(yuǎn),提供三者中的容量,但訪問時(shí)間慢,為 10-30 個(gè)時(shí)鐘周期。
多個(gè)緩存級(jí)別可限度地提高性能,同時(shí)限度地減少對(duì)主內(nèi)存的片外訪問。訪問該主存儲(chǔ)器可能會(huì)消耗數(shù)百個(gè)時(shí)鐘周期。通過使用多個(gè)緩存級(jí)別,可以更快地從這些緩存而不是較慢的主內(nèi)存中檢索數(shù)據(jù),從而提高整體系統(tǒng)效率。
當(dāng)涉及多個(gè) CPU 時(shí),所有這些的復(fù)雜性都會(huì)增加。考慮一個(gè)由四個(gè) CPU 組成的集群的常見場(chǎng)景,標(biāo)記為 0 到 3,每個(gè)都有自己的專用 L1 緩存。在一些實(shí)現(xiàn)中,每個(gè)還將有自己專用的 L2 緩存,而所有四個(gè)共享一個(gè)公共的 L3 緩存。在其他設(shè)計(jì)中,內(nèi)核 0 和 1 共享一個(gè) L2 緩存,內(nèi)核 2 和 3 共享另一個(gè) L2 緩存,并且所有四個(gè)內(nèi)核共同使用相同的 L3 緩存。這些不同的配置會(huì)影響跨不同緩存級(jí)別存儲(chǔ)和訪問數(shù)據(jù)的方式。
通常,單個(gè)集群中的所有處理器都是同類的,這意味著它們是相同的類型。然而,擁有多個(gè)處理器集群正變得越來越普遍。在許多情況下,不同集群中的是異構(gòu)的,或者是不同類型的。例如,借助 Arm 的 big.LITTLE 技術(shù),“大”內(nèi)核旨在實(shí)現(xiàn)性能,但使用頻率較低。
“LITTLE”內(nèi)核針對(duì)功率效率進(jìn)行了優(yōu)化,但性能較低,并且大部分時(shí)間都在使用。例如,在基于 Arm 的智能手機(jī)中,“大”內(nèi)核可能會(huì)被激活來執(zhí)行 Zoom 通話等相對(duì)不常見的任務(wù)。相比之下,“LITTLE”內(nèi)核可以處理更常見、要求不高的任務(wù),例如播放音樂和發(fā)送短信。
維護(hù)緩存一致性
在具有單獨(dú)高速緩存的多個(gè)處理元件共享同一主存儲(chǔ)器的系統(tǒng)中,可能具有共享數(shù)據(jù)的多個(gè)副本。例如,一份副本可能位于主存儲(chǔ)器中,而更多副本則位于每個(gè)處理器的本地高速緩存中。維護(hù)緩存一致性要求對(duì)一份數(shù)據(jù)副本的任何更改都反映在所有副本中。這可以通過用新數(shù)據(jù)更新所有副本或?qū)⑵渌北緲?biāo)記為無效來實(shí)現(xiàn)。
緩存一致性可以在軟件控制下保持。然而,軟件管理的一致性很復(fù)雜并且調(diào)試起來具有挑戰(zhàn)性。盡管如此,它仍然可以使用諸如緩存清理之類的技術(shù)來實(shí)現(xiàn),其中存儲(chǔ)在緩存中的修改數(shù)據(jù)被標(biāo)記為臟數(shù)據(jù),這意味著它必須被寫回主存儲(chǔ)器。緩存清理可以在整個(gè)緩存上執(zhí)行,也可以在特定地址上執(zhí)行,但這會(huì)占用 CPU 周期,并且必須在保存數(shù)據(jù)副本的所有 CPU 上執(zhí)行。
保持緩存一致性的方法是使用專門的硬件來以軟件不可見的方式管理緩存。例如,與處理器集群中的相關(guān)聯(lián)的高速緩存通常包括維持高速緩存一致性所需的硬件。
使用或不使用
SoC 由大量稱為知識(shí)產(chǎn)權(quán) (IP) 塊的功能塊組成。處理器集群就是這樣的一個(gè) IP 塊。連接 IP 塊的常見方法是使用 NoC。
在許多 SoC 設(shè)計(jì)中,處理器集群外部不需要一致性,從而允許使用非一致性或 IO 一致性 AXI5 或 AXI5-Lite NoC,例如 Arm 的 NI 或 Arteris 的 FlexNoC。然而,對(duì)于具有缺乏固有緩存一致性的多個(gè)處理器集群的 SoC 設(shè)計(jì),或者在集成需要緩存一致性的第三方 IP 或自定義加速器 IP 時(shí),需要一致的 NoC。示例包括使用 AMBA CHI 協(xié)議的 Arm 的 CMN 或使用 AMBA ACE 和/或 CHI 的 Arteris 的 Ncore。
在整個(gè)芯片上普遍應(yīng)用緩存一致性可能會(huì)占用大量資源,并且對(duì)于特定組件來說是不必要的。因此,將緩存一致性隔離到芯片的子集(例如 CPU 集群和特定加速器 IP)可以更有效地利用資源并降低復(fù)雜性,如圖2所示。像 Ncore 這樣的相干片上網(wǎng)絡(luò)在需要嚴(yán)格同步的場(chǎng)景中表現(xiàn)出色。同時(shí),非相干互連(例如 FlexNoC)非常適合不需要嚴(yán)格同步的場(chǎng)景。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫電子市場(chǎng)網(wǎng),http://udpf.com.cn,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- eMMC 屬于閃存還是內(nèi)存?從定義到應(yīng)用講透核心區(qū)別2025/9/15 15:24:16
- ddr4和ddr5內(nèi)存接口一樣嗎?全景解析2025/9/8 17:22:03
- 虛擬存儲(chǔ)器的概念和特征2025/8/4 16:49:21
- 鐵電存儲(chǔ)器和flash的區(qū)別2025/7/30 16:56:02
- 內(nèi)存頻率是什么_內(nèi)存頻率高有什么好處2025/7/29 17:07:27
- 交交型變頻器和交直交型變頻器的區(qū)別
- 800G DR8 與其他 800G 光模塊的對(duì)比分析
- UPS電源中電流電壓傳感器的應(yīng)用
- 51單片機(jī)電平特性是什么
- AC/DC 與 DC/DC 轉(zhuǎn)換器的工作原理與應(yīng)用
- PCB板層設(shè)計(jì)與電磁兼容性的關(guān)系解析
- 接觸器式繼電器怎么區(qū)分 如何測(cè)量好壞
- 車規(guī)級(jí)MCU介紹及應(yīng)用場(chǎng)景
- 電容選型時(shí)如何選擇產(chǎn)品的電壓
- 線性穩(wěn)壓電源與開關(guān)穩(wěn)壓電源:原理、特性及應(yīng)用