KeyStone存儲器架構
對于內部和外部存儲器,所有的數據 I/O 流量都可通過(guò)多條直接通道進(jìn)入 MSMC 到達芯片,而不是通過(guò) CorePac 存儲器控制器,從而在當數據 I/O 要訪(fǎng)問(wèn) CorePacs 當前沒(méi)有訪(fǎng)問(wèn)(例如,當 CorePac 從 SL2 執行,而數據 I/O往返于 DDR3 時(shí))的存儲器端點(diǎn)時(shí),能使兩者處于完全正交的狀態(tài);而且在 XMC 預取緩沖器后可提供判優(yōu)以對 CorePacs 隱藏存儲器組之間的沖突。
此外,XMC 還為數據和程序預取嵌入了多流預取緩沖器。程序預取緩沖器可為來(lái)自 L1P 和 L2 的讀取請求提供服務(wù),從而使其能夠在 CPU 需要之前預取高達 128 字節的程序數據。數據預取緩沖器可為來(lái)自 L1D 和 L2 的讀取請求提供服務(wù)。數據預取單元能夠支持 8 個(gè)預取流,且每個(gè)流都能獨立地從地址增加方向或地址減少方向預取數據。針對進(jìn)入 DSP 內核的數據流,預取功能能夠有助于減少強制失效損失。在多內核環(huán)境中,預取功能還能通過(guò)分散帶寬峰值來(lái)提升性能。為在不增加負面影響的情況下利用預取實(shí)現性能提升,可在 16MB 范圍內將存儲器配置為啟用或禁用預取屬性。
外部存儲器效率——除了將外部存儲器連接到 MSMC 所帶來(lái)的優(yōu)勢,KeyStone 外部存儲器還包含了對外部存儲器控制器 (EMIF) 的顯著(zhù)改進(jìn)。KeyStone 架構能夠以 1333MT/s以上的速率支持高性能 DDR3 SDRAM 存儲器。雖然總線(xiàn)能配置成 16 或 32 位(為節省面板空間和功耗),但其實(shí)際支持的總線(xiàn)寬高達 64 位數據寬度。該架構相對于之前的架構具有更大的寬度以及更快的速度,從而允許集成多個(gè)更高性能的內核、加速器和數據 I/O。
高速緩存一致性控制——通常在多內核器件以及多器件系統內,數據作為處理的一部分在內核之間共享。KeyStone 架構可提供一些改進(jìn)措施,以簡(jiǎn)化共享內部與外部存儲器的一致性管理操作。
在 KeyStone 架構中,LL2 存儲器始終與 L1D 高速緩存保持一致,所以不需要對一致性管理進(jìn)行特殊的配置(雖然利用 L1D 一致性命令可實(shí)現一些性能優(yōu)化)。SL2 和 SL3 這兩種共享存儲器不能由硬件來(lái)保障與 L1 和 L2 高速緩存的同步。因此需要軟件控制往返于數據 I/O 頁(yè)面的傳輸,以及對多內核之間共享緩沖器的訪(fǎng)問(wèn)。
為簡(jiǎn)化該過(guò)程,已將 fence 操作作為新的 MFENCE 指令添加到 CorePac 中。當與簡(jiǎn)單的 CPU 環(huán)路組合使用時(shí),能將 MFENCE 用于實(shí)施 fence 操作,以保障讀/寫(xiě)訪(fǎng)問(wèn)群組之間的序列一致性。能將其用于對可能從不同路徑到達的特定端點(diǎn)的存儲器請求進(jìn)行同步。此外,對于多處理器算法,還可將其用于以特定順序實(shí)現對存儲器的存取,而這-順序從所有 CPU 角度來(lái)看都一樣。這可大幅簡(jiǎn)化共享數據段所需的一致性協(xié)議。
共享存儲器保護與地址擴展 — C64x+ 和 C67x DSP 架構均將存儲器保護作為內部存儲器設計(L1、L2、SL2)的一部分。KeyStone 架構將存儲器保護擴展至外部存儲器,同時(shí)還增強了對內部存儲器進(jìn)行保護的靈活性。另外,MSMC 允許將外部存儲器的地址空間從 32 位擴展至 36 位。
可為每個(gè) C66x DSP 分配唯一的權限 ID (PrivlD) 值??蔀閿祿?I/O 主系統分配一個(gè) PrivID,EDMA 則例外,但它可以繼承為每次傳輸進(jìn)行配置的主系統的 PrivID 值。KeyStone 器件總共可支持 16 個(gè) PrivID 值。存儲器保護屬性分別為管理員用戶(hù)和普通用戶(hù)分配了讀/寫(xiě)/執行訪(fǎng)問(wèn)權限。
局域存儲器的存儲保護 —— C66x CorePac可提供由軟件控制的請求者到存儲器映射的靈活性,從而進(jìn)一步擴展了此前 C6000 架構的存儲器保護協(xié)議。所有存儲器請求者(C66x CPU、EDMA、導航器、PCIe、SRIO 等)均擁有相關(guān)聯(lián)的特權 ID。內部存儲器控制器可以區分多達 6 個(gè)不同的請求者,并配置所有其他請求者。由于 KeyStone 器件集成了更多的內核以及更多的 DMA 主系統(I/O 和加速器),這一數目已不夠用。KeyStone CorePac 允許將系統主控器的 ID 映射到保護邏輯中使用的 ID,以使應用能夠獲得量身打造的強大保護功能。
圖 4 - 存儲器保護屬性
共享存儲器的存儲器保護 —— 共享存儲器擁有多個(gè)存儲器保護和地址擴展 (MPAX) 單元。C66x DSP 可通過(guò) XMC 中的局域 MPAX 訪(fǎng)問(wèn) MSMC 通道,而數據 I/O 則通過(guò) MSMC 中的MPAX 邏輯訪(fǎng)問(wèn) MSMC,并分別對內部共享存儲器和外部存儲器進(jìn)行控制。
MPAX 單元將存儲器保護和地址擴展結合成一步完成。正如對局域存儲器的訪(fǎng)問(wèn)一樣,MPAX 的運行基礎為每個(gè)交易事務(wù)承載的特權 ID,用以代表存儲器的請求者。對于每個(gè) PrivID,相關(guān)聯(lián)的 MPAX 單元在內部共享存儲器和外部存儲器中均支持最多 16 個(gè)存儲段的定義。每個(gè)存儲段均獨立配置,并提供各自的存儲器保護地址擴展屬性。每個(gè)存儲段的大小可以是2 的任意次方,范圍介于 4KB 到 4GB 之間。地址擴展功能可將外部存儲空間從 32 位地址擴展至 36 位。
圖 5 – MSMC 地址擴展
存儲器段的地址區間定義非常靈活,而且能夠重疊以創(chuàng )建尺寸為非 2 的指數次方大小的段以及附加的存儲器區域。
評論