《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 解決方案 > TI KeyStone存儲器架構(gòu)

TI KeyStone存儲器架構(gòu)

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

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