查看引用/信息源請(qǐng)點(diǎn)擊:映維網(wǎng)Nweon
多存儲(chǔ)體、多端口分布式共享存儲(chǔ)器系統(tǒng)
(映維網(wǎng)Nweon2022年12月19日)Meta正在從各個(gè)方面優(yōu)化AR/VR硬件設(shè)備。在名為“Artificial reality system having multi-bank, multi-port distributed shared memory”的專利申請(qǐng)中,這家公司介紹了使用一個(gè)或多個(gè)多存儲(chǔ)體、多端口分布式共享存儲(chǔ)器系統(tǒng)實(shí)現(xiàn)的人造現(xiàn)實(shí)系統(tǒng)。
所述的共享存儲(chǔ)器系統(tǒng)可以實(shí)現(xiàn)為一個(gè)或多個(gè)集成電路和/或SoC的一部分。在一個(gè)實(shí)施例中,所描述的共享存儲(chǔ)器系統(tǒng)可以在邏輯上視為單個(gè)實(shí)體存儲(chǔ)體空間,但在物理上可以具有多個(gè)存儲(chǔ)體組。通過將特定存儲(chǔ)體與某些其他組件或子系統(tǒng)相關(guān)聯(lián),可以減少對(duì)同一存儲(chǔ)體的并發(fā)訪問的可能性,并且因此減少對(duì)鎖定的需要。另外,有限的路徑長度可以幫助限制功耗,并且可以減少存儲(chǔ)體延遲。團(tuán)隊(duì)表示,這種變化的延遲可以為特定應(yīng)用提供調(diào)整SoC性能的機(jī)會(huì)。
圖5示出了頭顯和外設(shè)的分布式架構(gòu)框圖。頭顯可以構(gòu)造和配置為實(shí)現(xiàn)多個(gè)人造現(xiàn)實(shí)應(yīng)用和協(xié)作場(chǎng)景渲染的并發(fā)執(zhí)行。
通常,圖5中所示的SoC表示以分布式架構(gòu)布置的專用集成電路的集合,其中每個(gè)SoC集成電路包括配置為為人造現(xiàn)實(shí)應(yīng)用提供操作環(huán)境的各種專用功能子系統(tǒng)和/或模塊。圖5僅僅是SoC集成電路的一個(gè)示例性布置。用于多設(shè)備人工現(xiàn)實(shí)系統(tǒng)的分布式架構(gòu)可以包括SoC集成電路的任何集合和/或布置。
在這個(gè)示例中,頭顯112的SoC 630A包括功能塊、子系統(tǒng)和/或模塊,包括追蹤模塊670、加密/解密模塊680、協(xié)處理器682、安全處理器683、接口模塊684和共享存儲(chǔ)器690,和/或同時(shí)定位和映射(SLAM)678、以及共享存儲(chǔ)器657
共享存儲(chǔ)器657可以實(shí)現(xiàn)為多存儲(chǔ)體、多端口分布式延遲共享存儲(chǔ)器系統(tǒng)。
在一個(gè)實(shí)施例中,SoC 610A和SoC 601B中的每一個(gè)可以分別包括共享存儲(chǔ)器657和共享存儲(chǔ)器667。共享存儲(chǔ)器657和667中的每一個(gè)可以實(shí)現(xiàn)多存儲(chǔ)體、多端口分布式共享存儲(chǔ)器系統(tǒng)。類似地,SoC 630A、630B和630C中的每一個(gè)都可以包括共享存儲(chǔ)器,并實(shí)現(xiàn)為多存儲(chǔ)體、多端口分布式共享存儲(chǔ)器系統(tǒng)。
圖6是示出了一個(gè)SoC框圖,其包括可由多個(gè)組件、子系統(tǒng)和/或設(shè)備訪問的示例共享存儲(chǔ)器。圖6的SoC 730可以對(duì)應(yīng)于圖5的SoC中的一個(gè)或多個(gè),例如頭顯 112的SoC 630A。圖6示出了可由多個(gè)子系統(tǒng)或組件訪問的共享存儲(chǔ)器790,以及顯示子系統(tǒng)758B。
圖6的示例中的SoC 730可以對(duì)應(yīng)于SoC 630A的示例,SoC 730可以包括在頭顯 112內(nèi),并且可以執(zhí)行與圖像捕獲、音頻捕獲、眼睛、手和/或深度追蹤、姿勢(shì)確定、輸入檢測(cè)、加密和/或描述以及內(nèi)容生成和/或顯示相關(guān)的功能。
在圖6的示例中,每個(gè)示出的子系統(tǒng)可以將數(shù)據(jù)存儲(chǔ)到共享存儲(chǔ)器790,并從共享內(nèi)存790中檢索數(shù)據(jù),其中共享存儲(chǔ)790在實(shí)現(xiàn)SOC 730的集成電路的內(nèi)部,并且用作多存儲(chǔ)體、多端口分布式共享存儲(chǔ)系統(tǒng)。
從每個(gè)子系統(tǒng)的角度來看,共享存儲(chǔ)器790在邏輯上可以表現(xiàn)為單個(gè)實(shí)體或單個(gè)存儲(chǔ)體設(shè)備,但同時(shí)可以包括多個(gè)存儲(chǔ)體組(圖6中未示出),每個(gè)存儲(chǔ)體組在SoC 730集成電路內(nèi)部并且可由任何子系統(tǒng)訪問。
在一個(gè)實(shí)施例中,共享存儲(chǔ)器790中包括的每個(gè)存儲(chǔ)體(圖6中未具體示出的存儲(chǔ)體)可由子系統(tǒng)通過SoC 730的集成電路內(nèi)的共享存儲(chǔ)器7900所呈現(xiàn)的端口或接口來訪問,以經(jīng)由內(nèi)部網(wǎng)絡(luò)向共享存儲(chǔ)器790/從共享存儲(chǔ)器790讀取數(shù)據(jù)。
在圖6的示例中,PCI/USB子系統(tǒng)751可以通過端口791A訪問共享存儲(chǔ)器790。類似地,安全子系統(tǒng)752可以通過端口792B訪問共享存儲(chǔ)器791;攝像頭子系統(tǒng)755可以通過端口791E訪問共享存儲(chǔ)器790;FCV子系統(tǒng)756可以通過端口79F訪問共享存儲(chǔ)器791‘圖形子系統(tǒng)757可以通過接口791G訪問共享存儲(chǔ)器792等等。
在一個(gè)實(shí)施例中,圖6中所示的與給定子系統(tǒng)相關(guān)聯(lián)的每個(gè)端口都可以專用于子系統(tǒng),使得子系統(tǒng)對(duì)存儲(chǔ)體的所有訪問都通過單個(gè)端口進(jìn)行。例如,PCI/USB子系統(tǒng)751可以通過端口791A訪問共享存儲(chǔ)器790中包括的任何存儲(chǔ)體。相應(yīng)地,安全子系統(tǒng)752可以通過端口791B訪問包括在共享存儲(chǔ)器790內(nèi)的任何存儲(chǔ)體。
圖6的系統(tǒng)還可以包括外部存儲(chǔ)體控制器759,其允許訪問附加存儲(chǔ)體,例如外部存儲(chǔ)體634(例如,但通常具有比包括在共享存儲(chǔ)器790內(nèi)的存儲(chǔ)體更大的延遲。
在一個(gè)實(shí)施例中,多個(gè)存儲(chǔ)體(或每個(gè)存儲(chǔ)體)可以通過低延遲連接來訪問,并且可以由SoC 730內(nèi)的子系統(tǒng)同時(shí)和/或并發(fā)地訪問。這樣的能力可以通過包括在共享存儲(chǔ)器790內(nèi)的網(wǎng)絡(luò)來實(shí)現(xiàn)。
圖7示出了具有多個(gè)存儲(chǔ)體和多個(gè)端口的共享存儲(chǔ)器系統(tǒng)的示例SoC框圖。圖示的子系統(tǒng)中的每一個(gè)子系統(tǒng)可以通過總線850進(jìn)行通信,并用于各種目的,包括在共享存儲(chǔ)器890內(nèi)分配內(nèi)存。主機(jī)子系統(tǒng)853可以包括內(nèi)存管理模塊899。共享存儲(chǔ)器8900包括網(wǎng)絡(luò)897,網(wǎng)絡(luò)897允許訪問多個(gè)存儲(chǔ)體中的每個(gè)存儲(chǔ)體。
在一個(gè)實(shí)施例中,存儲(chǔ)體組895中的每一個(gè)可以具有相同的設(shè)計(jì)或統(tǒng)一的設(shè)計(jì),潛在地在性能和密度方面以及在延遲和功耗方面實(shí)現(xiàn)規(guī)模效應(yīng)。例如,多個(gè)存儲(chǔ)體895中的每一個(gè)的統(tǒng)一設(shè)計(jì)可以提供優(yōu)化每一個(gè)這樣的存儲(chǔ)體的尺寸的機(jī)會(huì),最終使得更多的存儲(chǔ)體包括在給定尺寸的芯片中。
每個(gè)存儲(chǔ)體895可以配置有功耗特征,例如自動(dòng)(或根據(jù)命令)轉(zhuǎn)換到低功率或睡眠模式的能力。在一個(gè)示例中,每個(gè)存儲(chǔ)體895可以在共享存儲(chǔ)器890內(nèi)獨(dú)立地操作,并且可以獨(dú)立地能夠確定何時(shí)轉(zhuǎn)換到低功率模式。
在一個(gè)實(shí)施例中,存儲(chǔ)體組895中的每一個(gè)可以具有1兆字節(jié)量級(jí)的大校因此,在圖7的SoC 830的具體示例中,共享存儲(chǔ)器890可以具有大約23兆字節(jié)的容量。這種大小的存儲(chǔ)體可以是在集成電路上實(shí)現(xiàn)的相對(duì)大量的存儲(chǔ)體。因此,SoC 830可以來抵消集成到集成電路中的大量存儲(chǔ)體的潛在負(fù)面影響,并可用于減少存儲(chǔ)體延遲、提供變化的延遲分布、提高效率、實(shí)現(xiàn)低功耗以及提供其他技術(shù)方面有利的屬性。
在圖7的示例中,所示的每個(gè)子系統(tǒng)通過端口891之一訪問存儲(chǔ)體895,特別是,在圖7的示例中,PCI/USB子系統(tǒng)851通過端口891A訪問存儲(chǔ)體895,F(xiàn)CV子系統(tǒng)856通過端口891F訪問存儲(chǔ)體895,圖形子系統(tǒng)857通過端口89G訪問存儲(chǔ)體895,顯示子系統(tǒng)858A通過端口891H訪問存儲(chǔ)體內(nèi)895,而顯示子系統(tǒng)8.58B通過端口8911訪問存儲(chǔ)中895。
在圖7中,每個(gè)端口891示為通過連接892中的一個(gè)連接到另一個(gè)交換機(jī)893。例如,端口891A示為經(jīng)由連接892連接到交換機(jī)893A。類似地,端口891C示為經(jīng)過不同的連接892與交換機(jī)893A連接。
SoC 830的每個(gè)子系統(tǒng)對(duì)存儲(chǔ)體895的訪問可以通過網(wǎng)絡(luò)897進(jìn)行,網(wǎng)絡(luò)897將每個(gè)子系統(tǒng)的專用端口891連接到每個(gè)存儲(chǔ)體891,和交換機(jī)893C以及端口891、交換機(jī)893和存儲(chǔ)體895之間的連接(892、894和898)。
交換機(jī)893可以啟用共享存儲(chǔ)器890內(nèi)的多個(gè)組件之間的連接,同時(shí)限制共享存儲(chǔ)器8900內(nèi)的物理連接的數(shù)量。多個(gè)交換機(jī)893的適當(dāng)使用可以減少并行連接的數(shù)量,并且可以使共享存儲(chǔ)器890內(nèi)的多個(gè)組件能夠?qū)⑾嗤倪B接用于復(fù)用業(yè)務(wù)。
在一個(gè)示例中,每個(gè)交換機(jī)893用作具有多個(gè)不同仲裁器的交叉開關(guān)。開關(guān)893之一內(nèi)的每個(gè)仲裁器確定涉及存儲(chǔ)體895之一的存儲(chǔ)體操作是否需要執(zhí)行仲裁。例如在圖7中,交換機(jī)893C可以包括11個(gè)不同的仲裁器,因?yàn)榻粨Q機(jī)893C具有11個(gè)輸出端口。在11個(gè)輸出端口中,10個(gè)通向存儲(chǔ)體895之一,另一個(gè)輸出端口通向交換機(jī)893B。
在圖7中,開關(guān)893中的每一個(gè)可以實(shí)現(xiàn)對(duì)多個(gè)存儲(chǔ)體895的獨(dú)立和并發(fā)訪問,開關(guān)893C能夠使請(qǐng)求子系統(tǒng)獨(dú)立地和同時(shí)地訪問存儲(chǔ)體895N和895S中的每一個(gè)。如果交換機(jī)893C具有這樣的能力,則可能不需要對(duì)這樣的存儲(chǔ)體訪問執(zhí)行仲裁,并且請(qǐng)求子系統(tǒng)可以獨(dú)立地和并發(fā)地訪問存儲(chǔ)體組895N和895S中的每一個(gè)。
圖7的SoC 830可以是圖6的SoC 730的替代或示例實(shí)現(xiàn)。類似地,圖7的SoC 830可以對(duì)應(yīng)于圖5的一個(gè)或多個(gè)SoC,例如頭顯 112的SoC 630A。
使用外部存儲(chǔ)體不僅在延遲方面而且在功耗方面可能成本昂貴,所以共享存儲(chǔ)器890可以實(shí)現(xiàn)為SoC 830的一部分,并且可以以實(shí)現(xiàn)低延遲、并發(fā)訪問和低功耗特征的方式來設(shè)計(jì)和/或?qū)崿F(xiàn)。
例如,在圖7中,多個(gè)交換機(jī)893用于在存儲(chǔ)體895之間路由存儲(chǔ)體業(yè)務(wù)。盡管在特定設(shè)計(jì)中可以使用單個(gè)交換機(jī)或NOC,但如果NOC路由的存儲(chǔ)體業(yè)務(wù)量大,則這樣的交換機(jī)或NOB可能成為擁塞點(diǎn)。另外,單個(gè)交換機(jī)或NOC可能需要較大的尺寸,而較大的NOC往往會(huì)消耗大量的電力。
因此,以圖7所示的方式使用多個(gè)NOC可能是有利的。例如,使用多個(gè)交換機(jī)893使得交換機(jī)893中的每一個(gè)都能夠在多個(gè)交換機(jī)892上分配存儲(chǔ)體業(yè)務(wù),這不僅減少了任何給定交換機(jī)893處的擁塞,而且這樣的系統(tǒng)中的交換機(jī)893的每一個(gè)中的每個(gè)都傾向于消耗更少的功率。
在一個(gè)實(shí)施例中,對(duì)多個(gè)存儲(chǔ)體895的訪問可以是并發(fā)進(jìn)行,而不需要存儲(chǔ)體業(yè)務(wù)穿越任何公共點(diǎn)。例如,PCI/USB子系統(tǒng)851可以通過端口891A訪問共享存儲(chǔ)器890來訪問存儲(chǔ)體組895A。類似地,顯示子系統(tǒng)858B可以通過端口8911訪問共享存儲(chǔ)器890來訪問存儲(chǔ)體組895N。
在這樣的示例中,到存儲(chǔ)體組895A和存儲(chǔ)體組895N中的每一個(gè)的存儲(chǔ)體業(yè)務(wù)不需要經(jīng)過任何公共點(diǎn),因此存儲(chǔ)體組896A和存儲(chǔ)體組1895N可以由PCI/USB子系統(tǒng)851和顯示子系統(tǒng)858B同時(shí)訪問。
并發(fā)訪問反過來可以提供顯著的帶寬增強(qiáng),這是與使用單個(gè)NOC執(zhí)行對(duì)存儲(chǔ)體的共享訪問的系統(tǒng)相比的一個(gè)優(yōu)勢(shì)。例如,如果四個(gè)不同的子系統(tǒng)同時(shí)訪問四個(gè)存儲(chǔ)體895,則共享存儲(chǔ)器890的有效存儲(chǔ)體速度或帶寬可以比單個(gè)存儲(chǔ)體890的訪問速度快四倍。
在一個(gè)實(shí)施例中,連接892、路徑894和連接898的物理長度可能對(duì)給定端口891和給定存儲(chǔ)體895之間的延遲產(chǎn)生影響,因?yàn)檫@些連接或路徑可以在集成電路上延伸的距離通常存在電限制。如果連接或路徑太長,可能需要重新放大信號(hào),以便信號(hào)在沿著連接或路徑到達(dá)目的地時(shí)保持穩(wěn)定。在這種情況下,這種再放大可能需要額外的時(shí)鐘周期,從而增加延遲。
因此,有限的路徑長度可以幫助限制功耗,并且可以減少存儲(chǔ)體延遲。
因?yàn)榕c從端口891H到存儲(chǔ)體組895A的物理距離相比,從端口891A到存儲(chǔ)體組1895A的物理距離(連接892和898的長度)可能相對(duì)較短,從端口891A到存儲(chǔ)體895A的等待時(shí)間可以減少。
這種分布式延遲設(shè)計(jì)同時(shí)具有功耗優(yōu)勢(shì)。例如,SoC 830可以通過限制到存儲(chǔ)體895的業(yè)務(wù)所經(jīng)過的跳數(shù)、通過限制到存儲(chǔ)體組895的公共或典型存儲(chǔ)體業(yè)務(wù)所行進(jìn)的連接的長度、以及通過限制SoC 830內(nèi)的連接、導(dǎo)線和/或路徑的長度來節(jié)省電能,因?yàn)槭褂脝蝹(gè)NOC實(shí)現(xiàn)共享存儲(chǔ)器可能需要單個(gè)NOC消耗大量功率。作為實(shí)現(xiàn)分布式延遲設(shè)計(jì)的設(shè)計(jì)考慮的結(jié)果,SoC 830的功耗屬性因此可以得到改善。
在一個(gè)實(shí)施例中,每個(gè)存儲(chǔ)體895同時(shí)可以配置有額外的功耗特征,例如自動(dòng)(或根據(jù)命令)轉(zhuǎn)換到低功率或睡眠模式的能力。例如,每個(gè)存儲(chǔ)體895獨(dú)立地在SoC 830操作,并且獨(dú)立地能夠確定何時(shí)轉(zhuǎn)換到低功率模式?梢曰谧韵惹霸L問該存儲(chǔ)體組89以來已經(jīng)過了多少時(shí)間和/或基于傾向于訪問給定存儲(chǔ)體組899的子系統(tǒng)的訪問模式,存儲(chǔ)體組895中的每一個(gè)可以確定是否轉(zhuǎn)換到休眠模式或低功率模式,并通過評(píng)估共享存儲(chǔ)器890的這種訪問模式和/或使用模式以及學(xué)習(xí)用于進(jìn)行這種轉(zhuǎn)換的適當(dāng)或最佳閾值。
SoC 830同時(shí)可以通過基于每個(gè)這樣的子系統(tǒng)的預(yù)期使用模式來調(diào)整延遲來設(shè)計(jì)。例如,可以在設(shè)計(jì)時(shí)知道數(shù)據(jù)預(yù)期如何在SoC 830內(nèi)流動(dòng)。利用相關(guān)知識(shí),可以做出有助于減少公共存儲(chǔ)體操作的延遲、實(shí)現(xiàn)并行存儲(chǔ)體操作以及減少SoC 830的總體功耗需求的設(shè)計(jì)選擇,交換機(jī)893的數(shù)量和物理布置,以及通常由交換機(jī)893和連接892、路徑894和連接898組成的網(wǎng)絡(luò)拓?fù)洹?/p>
對(duì)于通用SoC,在設(shè)計(jì)時(shí)不知道預(yù)期使用情況,這種設(shè)計(jì)選擇不可能或不可齲但如果在設(shè)計(jì)時(shí)已知有關(guān)預(yù)期用例的重要信息,則可以做出對(duì)內(nèi)存延遲和電源效率有重大影響的設(shè)計(jì)選擇。這樣的設(shè)計(jì)選擇同樣可以在設(shè)計(jì)后期進(jìn)行,使得能夠在制造對(duì)應(yīng)于SoC 830的集成電路之前部署與預(yù)期使用模式相關(guān)的定制并利用預(yù)期使用模式。
因此,一個(gè)或多個(gè)存儲(chǔ)體895可以這樣的方式布置在SoC 830上,以實(shí)現(xiàn)特定子系統(tǒng)的高效訪問。
相關(guān)專利:
Meta Patent | Artificial reality system having multi-bank, multi-port distributed shared memory
https://patent.nweon.com/26127
名為“Artificial reality system having multi-bank, multi-port distributed shared memory”的Meta專利申請(qǐng)最初在2022年8月提交,并在日前由美國專利商標(biāo)局公布。