相應(yīng)地,局域 L2 存儲(chǔ)器是高達(dá) 1MB 的統(tǒng)一存儲(chǔ)器(最初宣布推出的器件為 512KB 或 1MB)。此外,該存儲(chǔ)器也可配置為全高速緩存、全存儲(chǔ)器映射 SRAM(默認(rèn)),或是 32、64、128、256 或 512KB 四路集關(guān)聯(lián)高速緩存選項(xiàng)的組合。
至共享存儲(chǔ)器子系統(tǒng)的存取路徑經(jīng)過精心的重新設(shè)計(jì),能夠顯著降低至較高級存儲(chǔ)器的時(shí)延,無論所有CorePac和數(shù)據(jù) I/O 是否處于繁忙狀態(tài),均能維持相同的效率。
二級存儲(chǔ)器效率 —— 與之前的系列產(chǎn)品相比,LL2 存儲(chǔ)器器件和控制器的時(shí)鐘運(yùn)行速率更高。C66x LL2 存儲(chǔ)器以等同于 CPU 時(shí)鐘的時(shí)鐘速率運(yùn)行。更高的時(shí)鐘頻率可實(shí)現(xiàn)更快的訪問時(shí)間,從而減少了因 L1 高速緩存失效造成的停滯,在此情況下必須從 LL2 高速緩存或 SRAM 獲取存儲(chǔ)器)。光這一項(xiàng)改進(jìn)就自動(dòng)使得從 C64X+ 或 C67X 器件進(jìn)行應(yīng)用升級實(shí)現(xiàn)了很大的速度提升,而且無需為 C66x 指令集進(jìn)行重新編譯。
此外,無論是對用戶隱藏的還是由軟件命令驅(qū)動(dòng)的高速緩存一致性操作都會(huì)變得更高效,而且需要執(zhí)行的周期數(shù)也更少。反之,這也意味著自動(dòng)的高速緩存一致性操作(例如檢測、數(shù)據(jù)移出)對處理器的干擾更小,因而停滯周期數(shù)也更少。手動(dòng)的高速緩存一致性操作(例如全局或模塊回寫和/或無效)占用較少的周期即可完成,這就意味著在為共享存儲(chǔ)器判優(yōu)的過程中,實(shí)現(xiàn)CorePac 之間或 CorePac 與 DMA 主系統(tǒng)的同步將需要更短的等待時(shí)間。
共享存儲(chǔ)器效率 —— 為進(jìn)一步提高共享存儲(chǔ)器的執(zhí)行效率,在 CorePac 內(nèi)置了擴(kuò)展存儲(chǔ)器控制器 (XMC)。對共享內(nèi)部存儲(chǔ)器 (SL2/SL3) 和外部存儲(chǔ)器 (DDR3 SRAM) 來說,XMC 是通向 MSMC 的通道,且架構(gòu)的構(gòu)建基礎(chǔ)實(shí)施在此前具有共享二級(SL2)存儲(chǔ)器(比如TMS320C6472 DSP)的器件之上。
?
圖 3 - 共享存儲(chǔ)器架構(gòu)
在以前具有 SL2 存儲(chǔ)器的器件上,通向 SL2 的存取路徑與通向 LL2的存取路徑一樣,在鄰近內(nèi)部接口處均有一個(gè)預(yù)取緩沖器。預(yù)取功能可隱藏對共享 RAM 庫的訪問時(shí)延,并可優(yōu)化代碼執(zhí)行及對只讀數(shù)據(jù)的存取(全面支持寫操作)。XMC 雖然也遵循相同的目標(biāo),但是卻進(jìn)一步擴(kuò)展添加了強(qiáng)大得多的預(yù)取功能,從而對程序執(zhí)行和 R/W 數(shù)據(jù)獲取提供了可與 LL2 相媲美的最佳性能。預(yù)取功能不僅能在訪問存儲(chǔ)器之前通過拉近存儲(chǔ)器和 C66x DSP 內(nèi)核之間的距離來降低存取時(shí)延,而且還能緩解其他 CorePac 和數(shù)據(jù) I/O 通過 MSMC 爭奪同一存儲(chǔ)器資源的競爭局面。
MSMC 通過 256 位寬的總線與 XMC 相連,而 XMC 則可直接連接至用于內(nèi)部 SL2/SL3 RAM 的 4 個(gè)寬 1024 位存儲(chǔ)器組。內(nèi)部存儲(chǔ)器組使 XMC 中的預(yù)取邏輯功能能夠在未來每次請求訪問物理 RAM 之前獲取程序和數(shù)據(jù),從而避免后續(xù)訪問停滯在 XMC。MSMC 可通過另一 256 位接口與外部存儲(chǔ)器接口控制器直接相連,進(jìn)一步將 CorePac 的高帶寬接口一直擴(kuò)展到外部存儲(chǔ)器。
對于外部存儲(chǔ)器而言,KeyStone架構(gòu)可通過與共享內(nèi)部存儲(chǔ)器相同的通道進(jìn)行訪問,從而較之前的架構(gòu)實(shí)現(xiàn)了顯著的增強(qiáng)。該通道的寬度是之前器件的兩倍,而速度則為一半,從而大幅降低了到達(dá)外部 DDR3 存儲(chǔ)器控制器(通過 XMC 和 MSMC)的時(shí)延。在此前的 C6000 DSP 中以及眾多的嵌入式處理器架構(gòu)中,外部 CPU 和高速緩存訪問是通過芯片級互連進(jìn)行發(fā)布的,而 XMC 則可提供更為直接的最優(yōu)通道。當(dāng)從外部存儲(chǔ)器執(zhí)行程序時(shí),其可大幅提高 L1/L2 高速緩存效率,并在多個(gè)內(nèi)核與數(shù)據(jù) I/O 對外部存儲(chǔ)器并行判優(yōu)時(shí)能夠顯著降低所帶來的遲滯。
對于內(nèi)部和外部存儲(chǔ)器,所有的數(shù)據(jù) I/O 流量都可通過多條直接通道進(jìn)入 MSMC 到達(dá)芯片,而不是通過 CorePac 存儲(chǔ)器控制器,從而在當(dāng)數(shù)據(jù) I/O 要訪問 CorePacs 當(dāng)前沒有訪問(例如,當(dāng) CorePac 從 SL2 執(zhí)行,而數(shù)據(jù) I/O往返于 DDR3 時(shí))的存儲(chǔ)器端點(diǎn)時(shí),能使兩者處于完全正交的狀態(tài);而且在 XMC 預(yù)取緩沖器后可提供判優(yōu)以對 CorePacs 隱藏存儲(chǔ)器組之間的沖突。
此外,XMC 還為數(shù)據(jù)和程序預(yù)取嵌入了多流預(yù)取緩沖器。程序預(yù)取緩沖器可為來自 L1P 和 L2 的讀取請求提供服務(wù),從而使其能夠在 CPU 需要之前預(yù)取高達(dá) 128 字節(jié)的程序數(shù)據(jù)。數(shù)據(jù)預(yù)取緩沖器可為來自 L1D 和 L2 的讀取請求提供服務(wù)。數(shù)據(jù)預(yù)取單元能夠支持 8 個(gè)預(yù)取流,且每個(gè)流都能獨(dú)立地從地址增加方向或地址減少方向預(yù)取數(shù)據(jù)。針對進(jìn)入 DSP 內(nèi)核的數(shù)據(jù)流,預(yù)取功能能夠有助于減少強(qiáng)制失效損失。在多內(nèi)核環(huán)境中,預(yù)取功能還能通過分散帶寬峰值來提升性能。為在不增加負(fù)面影響的情況下利用預(yù)取實(shí)現(xiàn)性能提升,可在 16MB 范圍內(nèi)將存儲(chǔ)器配置為啟用或禁用預(yù)取屬性。
外部存儲(chǔ)器效率——除了將外部存儲(chǔ)器連接到 MSMC 所帶來的優(yōu)勢,KeyStone 外部存儲(chǔ)器還包含了對外部存儲(chǔ)器控制器 (EMIF) 的顯著改進(jìn)。KeyStone 架構(gòu)能夠以 1333MT/s以上的速率支持高性能 DDR3 SDRAM 存儲(chǔ)器。雖然總線能配置成 16 或 32 位(為節(jié)省面板空間和功耗),但其實(shí)際支持的總線寬高達(dá) 64 位數(shù)據(jù)寬度。該架構(gòu)相對于之前的架構(gòu)具有更大的寬度以及更快的速度,從而允許集成多個(gè)更高性能的內(nèi)核、加速器和數(shù)據(jù) I/O。
高速緩存一致性控制——通常在多內(nèi)核器件以及多器件系統(tǒng)內(nèi),數(shù)據(jù)作為處理的一部分在內(nèi)核之間共享。KeyStone 架構(gòu)可提供一些改進(jìn)措施,以簡化共享內(nèi)部與外部存儲(chǔ)器的一致性管理操作。
在 KeyStone 架構(gòu)中,LL2 存儲(chǔ)器始終與 L1D 高速緩存保持一致,所以不需要對一致性管理進(jìn)行特殊的配置(雖然利用 L1D 一致性命令可實(shí)現(xiàn)一些性能優(yōu)化)。SL2 和 SL3 這兩種共享存儲(chǔ)器不能由硬件來保障與 L1 和 L2 高速緩存的同步。因此需要軟件控制往返于數(shù)據(jù) I/O 頁面的傳輸,以及對多內(nèi)核之間共享緩沖器的訪問。
為簡化該過程,已將 fence 操作作為新的 MFENCE 指令添加到 CorePac 中。當(dāng)與簡單的 CPU 環(huán)路組合使用時(shí),能將 MFENCE 用于實(shí)施 fence 操作,以保障讀/寫訪問群組之間的序列一致性。能將其用于對可能從不同路徑到達(dá)的特定端點(diǎn)的存儲(chǔ)器請求進(jìn)行同步。此外,對于多處理器算法,還可將其用于以特定順序?qū)崿F(xiàn)對存儲(chǔ)器的存取,而這-順序從所有 CPU 角度來看都一樣。這可大幅簡化共享數(shù)據(jù)段所需的一致性協(xié)議。
共享存儲(chǔ)器保護(hù)與地址擴(kuò)展 — C64x+ 和 C67x DSP 架構(gòu)均將存儲(chǔ)器保護(hù)作為內(nèi)部存儲(chǔ)器設(shè)計(jì)(L1、L2、SL2)的一部分。KeyStone 架構(gòu)將存儲(chǔ)器保護(hù)擴(kuò)展至外部存儲(chǔ)器,同時(shí)還增強(qiáng)了對內(nèi)部存儲(chǔ)器進(jìn)行保護(hù)的靈活性。另外,MSMC 允許將外部存儲(chǔ)器的地址空間從 32 位擴(kuò)展至 36 位。
可為每個(gè) C66x DSP 分配唯一的權(quán)限 ID (PrivlD) 值。可為數(shù)據(jù) I/O 主系統(tǒng)分配一個(gè) PrivID,EDMA 則例外,但它可以繼承為每次傳輸進(jìn)行配置的主系統(tǒng)的 PrivID 值。KeyStone 器件總共可支持 16 個(gè) PrivID 值。存儲(chǔ)器保護(hù)屬性分別為管理員用戶和普通用戶分配了讀/寫/執(zhí)行訪問權(quán)限。
局域存儲(chǔ)器的存儲(chǔ)保護(hù) —— C66x CorePac可提供由軟件控制的請求者到存儲(chǔ)器映射的靈活性,從而進(jìn)一步擴(kuò)展了此前 C6000 架構(gòu)的存儲(chǔ)器保護(hù)協(xié)議。所有存儲(chǔ)器請求者(C66x CPU、EDMA、導(dǎo)航器、PCIe、SRIO 等)均擁有相關(guān)聯(lián)的特權(quán) ID。內(nèi)部存儲(chǔ)器控制器可以區(qū)分多達(dá) 6 個(gè)不同的請求者,并配置所有其他請求者。由于 KeyStone 器件集成了更多的內(nèi)核以及更多的 DMA 主系統(tǒng)(I/O 和加速器),這一數(shù)目已不夠用。KeyStone CorePac 允許將系統(tǒng)主控器的 ID 映射到保護(hù)邏輯中使用的 ID,以使應(yīng)用能夠獲得量身打造的強(qiáng)大保護(hù)功能。
?
圖 4 - 存儲(chǔ)器保護(hù)屬性
共享存儲(chǔ)器的存儲(chǔ)器保護(hù) —— 共享存儲(chǔ)器擁有多個(gè)存儲(chǔ)器保護(hù)和地址擴(kuò)展 (MPAX) 單元。C66x DSP 可通過 XMC 中的局域 MPAX 訪問 MSMC 通道,而數(shù)據(jù) I/O 則通過 MSMC 中的MPAX 邏輯訪問 MSMC,并分別對內(nèi)部共享存儲(chǔ)器和外部存儲(chǔ)器進(jìn)行控制。
MPAX 單元將存儲(chǔ)器保護(hù)和地址擴(kuò)展結(jié)合成一步完成。正如對局域存儲(chǔ)器的訪問一樣,MPAX 的運(yùn)行基礎(chǔ)為每個(gè)交易事務(wù)承載的特權(quán) ID,用以代表存儲(chǔ)器的請求者。對于每個(gè) PrivID,相關(guān)聯(lián)的 MPAX 單元在內(nèi)部共享存儲(chǔ)器和外部存儲(chǔ)器中均支持最多 16 個(gè)存儲(chǔ)段的定義。每個(gè)存儲(chǔ)段均獨(dú)立配置,并提供各自的存儲(chǔ)器保護(hù)地址擴(kuò)展屬性。每個(gè)存儲(chǔ)段的大小可以是2 的任意次方,范圍介于 4KB 到 4GB 之間。地址擴(kuò)展功能可將外部存儲(chǔ)空間從 32 位地址擴(kuò)展至 36 位。
?
評論
查看更多