《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 解決方案 > TI KeyStone存儲器架構

TI KeyStone存儲器架構

2011-08-12
作者:1 胡春華 2 David Bell
來源:1 TI多內核 DSP 芯片架構師 2 TI多內核 DSP 應用經(jīng)理
序言
 
    隨著全球范圍內的海量數(shù)據(jù)對無線和有線網(wǎng)絡的強大沖擊,,運營商面臨著嚴峻的挑戰(zhàn),,他們需要不斷推出既能滿足當前需求也能滿足未來需求的網(wǎng)絡,。因此,通信基礎局端設備制造商在致力于降低每比特成本和功耗的同時,,也在不斷尋求能夠滿足當前及至未來需求的核心技術。TI最新推出的新型 KeyStone 多內核 SoC 架構能夠游刃有余地滿足這些挑戰(zhàn),。
 
    基于新型 KeyStone 多內核 SoC 架構的器件集成了多達 8 個TMS320C66x DSP CorePac,,能夠實現(xiàn)無與倫比的定點與浮點處理能力,。KeyStone 架構經(jīng)精心設計,是一款效率極高的多內核存儲器架構,,允許并行執(zhí)行任務的同時,,還能使所有的 CorePac實現(xiàn)全速處理。本文探討了 KeyStone 存儲器的層級結構,,及其將如何與 SoC架構的其他組件進行連接以實現(xiàn)多內核全速處理,。

KeyStone存儲器架構
 
     德州儀器 (TI) 積極創(chuàng)新,努力迎接多內核 SoC 技術帶來的挑戰(zhàn),。TI KeyStone 架構擁有眾多組件,,其中包含全新的 C66x 定點和浮點 DSP 內核、可實現(xiàn)基于標準的優(yōu)化功能和接口的可配置協(xié)處理器,、層級存儲器架構,、TeraNet 交換結構以及可將上述各組件連結在一起的多內核導航器。KeyStone 架構具備三個存儲等級,。每個 C66xCorePac 均擁有自己的一級程序 (L1P) 和一級數(shù)據(jù) (L1D) 存儲器,。另外,每個 CorePac 還擁有局域的二級統(tǒng)一存儲器,。每個局域存儲器均能獨立配置成存儲器映射的SRAM,、高速緩存,或是兩者的組合,。
 
    KeyStone 架構包含共享的存儲器子系統(tǒng),,其由通過多內核共享存儲器控制器 (MSMC) 連接的內部和外部存儲器組成。MSMC 允許CorePac動態(tài)地分享程序和數(shù)據(jù)的內外部存儲器,。
 
KeyStone 器件方框圖 - TMS320TCI6616
圖 1 - KeyStone 器件方框圖 - TMS320TCI6616
 
    MSMC 的內部 RAM 允許各部分被配置成共享的二級 RAM 或者共享三級 (SL3) RAM,,從而可為程序員提供高度的靈活性。SL2 RAM 僅能夠在局域 L1P 和 L1D 高速緩存中緩存,,而 SL3另外還可在局域 L2 高速緩存中進行緩存,。
 
    為向軟件執(zhí)行提供快速通道,外部存儲器同內部共享存儲器一樣,,通過同一存儲器控制器進行連接,,而并非像在嵌入式處理器架構上所進行的傳統(tǒng)做法那樣,與芯片系統(tǒng)實現(xiàn)互通互連,。外部存儲器始終被看作是 SL3 存儲器,,并可在 L1 和 L2 中緩存。接下來的我們將探討在KeyStone 架構中實現(xiàn)的各種性能增強,。
 
存儲性能增強
 
     C66x CorePac 的內部存儲器架構與此前 C6000™ DSP 系列產(chǎn)品相比,,主要在四個方面實現(xiàn)了增強,而這突出體現(xiàn)在性能指標和實用性方面,。這些改進旨在實現(xiàn)如下優(yōu)勢:1) 無論多個內核和數(shù)據(jù) I/O 是否處于高度繁忙狀態(tài),,都能提高存儲器各級的執(zhí)行效率,;2) 更輕松便捷地管理多個內核和數(shù)據(jù) I/O 之間的緩存一致性;3) 存儲器的保護與地址擴展,,以及,;4) 將對軟錯誤的保護進一步擴展至較高級別的存儲器。
執(zhí)行效率 —— C66x CorePac 的存儲器子系統(tǒng)在功能上與最新的 C64x+™ 和C67x™ 系列 DSP 系列 C64x+™ 和 C67x™ 的相當,。每個局域 L1存儲器均為 32KB,,并能夠配置成全速緩存(默認)、全存儲器映射 SRAM,,或是 4,、8 或 16KB 高速緩存選項的組合。L1P 始終為直接映射,,而 L1D 則始終為雙向集關聯(lián) (two-way set-associative),。
 
CorePac 存儲器增強
圖2 – CorePac 存儲器增強
 
 
    相應地,局域 L2 存儲器是高達 1MB 的統(tǒng)一存儲器(最初宣布推出的器件為 512KB 或 1MB),。此外,,該存儲器也可配置為全高速緩存、全存儲器映射 SRAM(默認),,或是 32,、64、128,、256 或 512KB 四路集關聯(lián)高速緩存選項的組合,。
 
    至共享存儲器子系統(tǒng)的存取路徑經(jīng)過精心的重新設計,能夠顯著降低至較高級存儲器的時延,,無論所有CorePac和數(shù)據(jù) I/O 是否處于繁忙狀態(tài),,均能維持相同的效率,。
 
    二級存儲器效率 —— 與之前的系列產(chǎn)品相比,,LL2 存儲器器件和控制器的時鐘運行速率更高。C66x LL2 存儲器以等同于 CPU 時鐘的時鐘速率運行,。更高的時鐘頻率可實現(xiàn)更快的訪問時間,,從而減少了因 L1 高速緩存失效造成的停滯,在此情況下必須從 LL2 高速緩存或 SRAM 獲取存儲器),。光這一項改進就自動使得從 C64X+ 或 C67X 器件進行應用升級實現(xiàn)了很大的速度提升,,而且無需為 C66x 指令集進行重新編譯。
 
      此外,,無論是對用戶隱藏的還是由軟件命令驅動的高速緩存一致性操作都會變得更高效,,而且需要執(zhí)行的周期數(shù)也更少。反之,,這也意味著自動的高速緩存一致性操作(例如檢測,、數(shù)據(jù)移出)對處理器的干擾更小,,因而停滯周期數(shù)也更少。手動的高速緩存一致性操作(例如全局或模塊回寫和/或無效)占用較少的周期即可完成,,這就意味著在為共享存儲器判優(yōu)的過程中,,實現(xiàn)CorePac 之間或 CorePac 與 DMA 主系統(tǒng)的同步將需要更短的等待時間。
 
    共享存儲器效率 —— 為進一步提高共享存儲器的執(zhí)行效率,,在 CorePac 內置了擴展存儲器控制器 (XMC),。對共享內部存儲器 (SL2/SL3) 和外部存儲器 (DDR3 SRAM) 來說,XMC 是通向 MSMC 的通道,,且架構的構建基礎實施在此前具有共享二級(SL2)存儲器(比如TMS320C6472 DSP)的器件之上,。
 
共享存儲器架構
圖 3 - 共享存儲器架構
 
 
    在以前具有 SL2 存儲器的器件上,通向 SL2 的存取路徑與通向 LL2的存取路徑一樣,,在鄰近內部接口處均有一個預取緩沖器,。預取功能可隱藏對共享 RAM 庫的訪問時延,并可優(yōu)化代碼執(zhí)行及對只讀數(shù)據(jù)的存?。ㄈ嬷С謱懖僮鳎?。XMC 雖然也遵循相同的目標,但是卻進一步擴展添加了強大得多的預取功能,,從而對程序執(zhí)行和 R/W 數(shù)據(jù)獲取提供了可與 LL2 相媲美的最佳性能,。預取功能不僅能在訪問存儲器之前通過拉近存儲器和 C66x DSP 內核之間的距離來降低存取時延,而且還能緩解其他 CorePac 和數(shù)據(jù) I/O 通過 MSMC 爭奪同一存儲器資源的競爭局面,。
 
    MSMC 通過 256 位寬的總線與 XMC 相連,,而 XMC 則可直接連接至用于內部 SL2/SL3 RAM 的 4 個寬 1024 位存儲器組。內部存儲器組使 XMC 中的預取邏輯功能能夠在未來每次請求訪問物理 RAM 之前獲取程序和數(shù)據(jù),,從而避免后續(xù)訪問停滯在 XMC,。MSMC 可通過另一 256 位接口與外部存儲器接口控制器直接相連,進一步將 CorePac 的高帶寬接口一直擴展到外部存儲器,。
 
    對于外部存儲器而言,,KeyStone架構可通過與共享內部存儲器相同的通道進行訪問,從而較之前的架構實現(xiàn)了顯著的增強,。該通道的寬度是之前器件的兩倍,,而速度則為一半,從而大幅降低了到達外部 DDR3 存儲器控制器(通過 XMC 和 MSMC)的時延,。在此前的 C6000 DSP 中以及眾多的嵌入式處理器架構中,,外部 CPU 和高速緩存訪問是通過芯片級互連進行發(fā)布的,而 XMC 則可提供更為直接的最優(yōu)通道,。當從外部存儲器執(zhí)行程序時,,其可大幅提高 L1/L2 高速緩存效率,并在多個內核與數(shù)據(jù) I/O 對外部存儲器并行判優(yōu)時能夠顯著降低所帶來的遲滯,。
 
    對于內部和外部存儲器,,所有的數(shù)據(jù) I/O 流量都可通過多條直接通道進入 MSMC 到達芯片,,而不是通過 CorePac 存儲器控制器,從而在當數(shù)據(jù) I/O 要訪問 CorePacs 當前沒有訪問(例如,,當 CorePac 從 SL2 執(zhí)行,,而數(shù)據(jù) I/O往返于 DDR3 時)的存儲器端點時,能使兩者處于完全正交的狀態(tài),;而且在 XMC 預取緩沖器后可提供判優(yōu)以對 CorePacs 隱藏存儲器組之間的沖突,。
 
    此外,XMC 還為數(shù)據(jù)和程序預取嵌入了多流預取緩沖器,。程序預取緩沖器可為來自 L1P 和 L2 的讀取請求提供服務,,從而使其能夠在 CPU 需要之前預取高達 128 字節(jié)的程序數(shù)據(jù)。數(shù)據(jù)預取緩沖器可為來自 L1D 和 L2 的讀取請求提供服務,。數(shù)據(jù)預取單元能夠支持 8 個預取流,,且每個流都能獨立地從地址增加方向或地址減少方向預取數(shù)據(jù)。針對進入 DSP 內核的數(shù)據(jù)流,,預取功能能夠有助于減少強制失效損失,。在多內核環(huán)境中,預取功能還能通過分散帶寬峰值來提升性能,。為在不增加負面影響的情況下利用預取實現(xiàn)性能提升,,可在 16MB 范圍內將存儲器配置為啟用或禁用預取屬性。
 
     外部存儲器效率——除了將外部存儲器連接到 MSMC 所帶來的優(yōu)勢,,KeyStone 外部存儲器還包含了對外部存儲器控制器 (EMIF) 的顯著改進,。KeyStone 架構能夠以 1333MT/s以上的速率支持高性能 DDR3 SDRAM 存儲器。雖然總線能配置成 16 或 32 位(為節(jié)省面板空間和功耗),,但其實際支持的總線寬高達 64 位數(shù)據(jù)寬度,。該架構相對于之前的架構具有更大的寬度以及更快的速度,從而允許集成多個更高性能的內核,、加速器和數(shù)據(jù) I/O,。
 
     高速緩存一致性控制——通常在多內核器件以及多器件系統(tǒng)內,數(shù)據(jù)作為處理的一部分在內核之間共享,。KeyStone 架構可提供一些改進措施,,以簡化共享內部與外部存儲器的一致性管理操作,。
 
    在 KeyStone 架構中,,LL2 存儲器始終與 L1D 高速緩存保持一致,所以不需要對一致性管理進行特殊的配置(雖然利用 L1D 一致性命令可實現(xiàn)一些性能優(yōu)化),。SL2 和 SL3 這兩種共享存儲器不能由硬件來保障與 L1 和 L2 高速緩存的同步,。因此需要軟件控制往返于數(shù)據(jù) I/O 頁面的傳輸,以及對多內核之間共享緩沖器的訪問,。
 
      為簡化該過程,,已將 fence 操作作為新的 MFENCE 指令添加到 CorePac 中,。當與簡單的 CPU 環(huán)路組合使用時,能將 MFENCE 用于實施 fence 操作,,以保障讀/寫訪問群組之間的序列一致性,。能將其用于對可能從不同路徑到達的特定端點的存儲器請求進行同步。此外,,對于多處理器算法,,還可將其用于以特定順序實現(xiàn)對存儲器的存取,而這-順序從所有 CPU 角度來看都一樣,。這可大幅簡化共享數(shù)據(jù)段所需的一致性協(xié)議,。
 
     共享存儲器保護與地址擴展 — C64x+ 和 C67x DSP 架構均將存儲器保護作為內部存儲器設計(L1、L2,、SL2)的一部分,。KeyStone 架構將存儲器保護擴展至外部存儲器,同時還增強了對內部存儲器進行保護的靈活性,。另外,,MSMC 允許將外部存儲器的地址空間從 32 位擴展至 36 位。
 
     可為每個 C66x DSP 分配唯一的權限 ID (PrivlD) 值,??蔀閿?shù)據(jù) I/O 主系統(tǒng)分配一個 PrivID,EDMA 則例外,,但它可以繼承為每次傳輸進行配置的主系統(tǒng)的 PrivID 值,。KeyStone 器件總共可支持 16 個 PrivID 值。存儲器保護屬性分別為管理員用戶和普通用戶分配了讀/寫/執(zhí)行訪問權限,。
 
     局域存儲器的存儲保護 —— C66x CorePac可提供由軟件控制的請求者到存儲器映射的靈活性,,從而進一步擴展了此前 C6000 架構的存儲器保護協(xié)議。所有存儲器請求者(C66x CPU,、EDMA,、導航器、PCIe,、SRIO 等)均擁有相關聯(lián)的特權 ID,。內部存儲器控制器可以區(qū)分多達 6 個不同的請求者,并配置所有其他請求者,。由于 KeyStone 器件集成了更多的內核以及更多的 DMA 主系統(tǒng)(I/O 和加速器),,這一數(shù)目已不夠用。KeyStone CorePac 允許將系統(tǒng)主控器的 ID 映射到保護邏輯中使用的 ID,,以使應用能夠獲得量身打造的強大保護功能,。
 
圖 4 - 存儲器保護屬性
 
    共享存儲器的存儲器保護 —— 共享存儲器擁有多個存儲器保護和地址擴展 (MPAX) 單元。C66x DSP 可通過 XMC 中的局域 MPAX 訪問 MSMC 通道,而數(shù)據(jù) I/O 則通過 MSMC 中的MPAX 邏輯訪問 MSMC,,并分別對內部共享存儲器和外部存儲器進行控制,。
 
     MPAX 單元將存儲器保護和地址擴展結合成一步完成。正如對局域存儲器的訪問一樣,,MPAX 的運行基礎為每個交易事務承載的特權 ID,,用以代表存儲器的請求者。對于每個 PrivID,,相關聯(lián)的 MPAX 單元在內部共享存儲器和外部存儲器中均支持最多 16 個存儲段的定義,。每個存儲段均獨立配置,并提供各自的存儲器保護地址擴展屬性,。每個存儲段的大小可以是2 的任意次方,,范圍介于 4KB 到 4GB 之間。地址擴展功能可將外部存儲空間從 32 位地址擴展至 36 位,。
 
MSMC 地址擴展
圖 5 – MSMC 地址擴展
 
 
     存儲器段的地址區(qū)間定義非常靈活,,而且能夠重疊以創(chuàng)建尺寸為非 2 的指數(shù)次方大小的段以及附加的存儲器區(qū)域。
 
      地址擴展功能可將 32 位地址重新映射到 36 位,,從而支持更大的外部存儲器,。地址擴展能將 DSP 內核中相同的虛擬地址映射到不同的物理地址,并將多個虛擬地址映射到同一物理地址,,這對于同一個存儲器來說具有不同的語義,。MPAX 單元可將運行在不同 DSP 內核之上的操作系統(tǒng)和應用進行隔離,并能輕松支持共享程序,。
 
      圖 6 顯示了如何在 KeyStone 架構內使用 MPAX 來構建多內核虛擬存儲器的實例,。假定所有內核均運行同一應用,則可將該共享程序和靜態(tài)數(shù)據(jù)加載至共享的內部和外部存儲器區(qū)域中,。私有變量(如數(shù)據(jù) 1)可以使用各個內核中的同一虛擬地址,,同時 MPAX 將其映射至不同的物理存儲器地址。軟件在運行時無需重新進行任何地址映射即可使相同的代碼映像在多個內核上執(zhí)行,。
 
       錯誤檢測與校正 —— 專用于基礎局端系統(tǒng)的數(shù)代 C6000 器件系列,,內部存儲空間中包含了軟錯誤校正功能。KeyStone 系列器件以該技術為構建基礎,,能夠進一步將軟錯誤保護擴展至存儲器的所有層級,。
 
圖 6 - 多內核虛擬存儲器
 
     層級系統(tǒng)中的存儲器控制器可支持多級保護,并可用于實現(xiàn)對代碼段進行全面校正,,并對數(shù)據(jù)空間進行錯誤檢測,。L1P、L2 和 SL2(或 SL3 內部 RAM)均包含可用于檢測和校正 128 位或 256 位存儲器段內單個位錯誤的奇偶校驗信息,。另外,,我們還將能檢測到同一訪問中的兩個位錯誤并觸發(fā)訪問 CorePac 產(chǎn)生異常,。對于數(shù)據(jù)存取,,僅能檢測到位誤差,,并觸發(fā)異常。無論發(fā)生檢測還是校正事件,,信息均被存儲在錯誤訪問的存儲器控制器中,,以便為應用和/或主機恢復提供信息援助。
 
    通過 ECC 邏輯可將軟錯誤保護進一步擴展至外部存儲器空間,。每 64 位數(shù)據(jù)有一個 8 位 ECC 碼,,根據(jù)選項可配置成支持 32 位和 64 位數(shù)據(jù)寬度。添加 ECC 需要支持 32 位數(shù)據(jù)寬度的額外 4 位 DDR3 IC(實現(xiàn) 36 位接口),,或額外的 8 位 DDR3 IC(實現(xiàn) 72 位接口)以存放與整個外部數(shù)據(jù)空間相關的 ECC 值,。
 
     總結 新型 KeyStone 架構在存儲器架構方面具備各種優(yōu)勢,意味著無論在單內核還是在多內核 SoC 執(zhí)行環(huán)境中都能夠直接實現(xiàn)顯著的性能提升,。與此前的產(chǎn)品系列相比,,這些性能提升涉及各級存儲器,如局域 L2,、共享 L2/L3,,以及外部存儲器等。通過高效判優(yōu)和預取機制,,性能改進也體現(xiàn)在多內核,、加速器以及數(shù)據(jù) I/O 的并行訪問方面。
 
     針對內核之間以及內核與數(shù)據(jù) I/O 之間的共享數(shù)據(jù)頁面,,緩存一致性控制的改進可實現(xiàn)更簡單的判優(yōu),。
 
    實施存儲器保護和地址擴展可實現(xiàn)高度靈活的編程模型、更大范圍的地址搜索并為錯誤訪問提供保護,。
 
    針對各級存儲器的軟錯誤保護可確保運行時執(zhí)行不受隨機軟錯誤事件的影響,,而這一事件會對所有嵌入式處理器造成影響。
 
    Keystone 架構在存儲器性能,、易操作性以及靈活性方面實現(xiàn)的改進可確保程序員能夠實現(xiàn)由功能強大的新型C66X DSP系列提供的全速性能優(yōu)勢,。該架構具有卓越的可擴展性,其為具有各種數(shù)量的內核,、加速器和數(shù)據(jù) I/O 的 SoC 系列奠定了堅實基礎,。
本站內容除特別聲明的原創(chuàng)文章之外,轉載內容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點,。轉載的所有的文章、圖片,、音/視頻文件等資料的版權歸版權所有權人所有,。本站采用的非本站原創(chuàng)文章及圖片等內容無法一一聯(lián)系確認版權者,。如涉及作品內容、版權和其它問題,,請及時通過電子郵件或電話通知我們,,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失,。聯(lián)系電話:010-82306118,;郵箱:[email protected]