江顯舟
?
一種應用于超高清視頻編解碼芯片中的定制CACHE
江顯舟
福州瑞芯微電子股份有限公司,上海 201203
在超高清實時編解碼芯片中,數(shù)據(jù)帶寬和訪問延時一直是制約芯片性能和成本的關鍵。本設計在參考了傳統(tǒng)CACHE特性的基礎上,充分利用了視頻編解碼器對視頻數(shù)據(jù)的處理順序、圖像數(shù)據(jù)相關性、AXI總線及DRAM的訪問特性,將平均訪問命中率提高到75%以上、并明顯降低了未命中數(shù)據(jù)的讀取延時。
CACHE;DRAM;AXI
2013年HEVC(High Efficiency Video Coding)正式成為國際標準。相較于H.264/AVC,HEVC在相同的視頻質(zhì)量前提下,可以提高約一倍的壓縮效率,在同樣的信道條件下可以傳遞更多的視頻信息。但與此同時,HEVC也大大提升了算法復雜度,再加上不斷增加的分辨率和幀率需求,都對視頻編解碼器的實時編碼速度提出了較大的挑戰(zhàn)。特別是對于的數(shù)據(jù)帶寬消耗,即使僅考慮分辨率提升產(chǎn)生的影響,4K分辨率的視頻編解碼所需的數(shù)據(jù)帶寬也已經(jīng)是1080P的4倍。如何降低視頻編解碼系統(tǒng)的數(shù)據(jù)帶寬,是所有高性能視頻處理芯片都需要解決的難題。[1]
通用指令CACHE的設計初衷,是為了解決CPU內(nèi)核不斷增長的讀指令數(shù)據(jù)訪問需求與系統(tǒng)內(nèi)存低下的數(shù)據(jù)效率之間的矛盾。[2]CACHE的核心思想是開辟一個速度快容量小的存儲空間(通常使用高速片上RAM),存儲一些經(jīng)常會被使用到的數(shù)據(jù),使得CPU對系統(tǒng)內(nèi)存的數(shù)據(jù)訪問降低,以達到降低系統(tǒng)帶寬并提升數(shù)據(jù)訪問效率的作用。
CACHE的最小操作單位是行,一般稱之為“cache line”。每個cache line使用tag和index與系統(tǒng)內(nèi)存中的相同大小的數(shù)據(jù)對應。在訪問系統(tǒng)內(nèi)存時,CACHE會根據(jù)訪問地址查找與其對應的cache line,若cache line中存在因之前訪問所保留下來的該地址的數(shù)據(jù),則直接將cache line中的數(shù)據(jù)返回,稱之為訪問命中;否則從系統(tǒng)內(nèi)存中讀取該數(shù)據(jù),同時返回數(shù)據(jù)給請求者以及判斷是否將其存儲在cache line中供后續(xù)訪問使用。[3]
研究中所描述的定制化CACHE是在通用指令CACHE的基礎上,綜合考慮了編解碼器的數(shù)據(jù)訪問,通用總線(AXI)及DRAM的特性,而設計出的一款適用于編解碼器的高命中低訪問延時數(shù)據(jù)緩沖模塊。設計細節(jié)如下:
CACHE最小操作單位(cache line)的選定:cache line越小,CACHE中的數(shù)據(jù)利用率越高,但CACHE與系統(tǒng)內(nèi)存中的數(shù)據(jù)的映射邏輯較復雜,并且數(shù)據(jù)訪問過于零散,造成系統(tǒng)內(nèi)存的數(shù)據(jù)訪問延時增大、數(shù)據(jù)訪問帶寬降低;cache line越大,cache中的數(shù)據(jù)利用率越低(因為即使僅需要一筆數(shù)據(jù),整個cache line都需要被存儲或讀取),但映射邏輯較簡單,連續(xù)訪問的數(shù)據(jù)較多,數(shù)據(jù)訪問效率較高。通過對當前主流的視頻壓縮協(xié)議的運動估計結果分析得出,以4行16列的亮度分量及其對應的色度分量(若色度格式為yuv420,則色度分量為2行16列)作為一個cache line最為合理。首先,主流視頻壓縮協(xié)議都以16x16或其整數(shù)倍大小的圖像塊作為編碼單元,在大多數(shù)的情況下,當前編碼的圖像塊與其左側已經(jīng)編碼完成的圖像塊具有相同的運動方向(同屬一個平動物體),即當前編碼塊的匹配塊也位于左側圖像塊的匹配塊的右側,并且水平距離為編碼圖像塊的寬度。站在數(shù)據(jù)訪問的角度來看,當前需要訪問的數(shù)據(jù)非??赡芪挥谏弦淮卧L問數(shù)據(jù)的右側,且距離為16的整數(shù)倍。故以16作為cache line的寬度剛好可以匹配訪問位置的移動。而將亮度和色度合并在一個cache line中可以一次將匹配塊的數(shù)據(jù)讀出,并且在系統(tǒng)內(nèi)存中連續(xù)編址,增加DRAM訪問效率。
cache line映射方案:本設計采用了組相連的cache line映射方案,但tag和index的排布根據(jù)編解碼器的訪問特性進行了調(diào)整。首先,采用組相連方案映射的CACHE,每個index只能映射到若干固定的位置。以4路組相連的CACHE為例,若需要訪問的數(shù)據(jù)恰好需要5個相同index映射位置的數(shù)據(jù),則無法全部存儲,至少有一個數(shù)據(jù)會被更新掉。在視頻編碼中,運動估計都會指定一個矩形的范圍,若tag區(qū)域的大小剛好與其匹配,可以最大限度的利用CACHE中的存儲單元。特別的,由于編解碼對圖像塊的處理順序是光柵掃描順序,上行圖像塊的參考圖像塊相鄰的數(shù)據(jù)有較大的概率在當前圖像塊的編碼過程中使用,基于以上特性,設計了以line buffer為組織形式的L2 CACHE,進一步提高CACHE命中。
cache line更新策略:當從外存中載入了新的數(shù)據(jù),且CACHE中能與其對應的cache line都已經(jīng)存有數(shù)據(jù)時,需要選擇一個cache line將其內(nèi)部的數(shù)據(jù)更新成新載入的數(shù)據(jù)。cache line更新策略的目的是盡量更新掉后續(xù)不會再被使用的數(shù)據(jù)。由于圖像塊的編碼順序是從左到右從上到下,所以右下側的數(shù)據(jù)有更大的幾率會被后續(xù)的編碼過程使用。本模塊綜合考慮到了上述數(shù)據(jù)訪問特點以及數(shù)據(jù)與當前編碼塊之間的距離信息,選擇將最不可能被使用的數(shù)據(jù)進行更新。
總線優(yōu)化方案:站在總線效率來看,若想要獲得高效率的數(shù)據(jù)傳輸,則需要盡量增大連續(xù)數(shù)據(jù)傳輸?shù)拈L度,并增大發(fā)出的最大命令請求數(shù)量。模塊內(nèi)部采用可配置的多個數(shù)據(jù)管理引擎,可同時發(fā)出多個ID的數(shù)據(jù)請求,并支持數(shù)據(jù)返回亂序和交織、連續(xù)cache line請求命令聚合等功能,以提高總線數(shù)據(jù)傳輸效率。
DRAM訪問優(yōu)化方案:DRAM作為絕大多數(shù)系統(tǒng)內(nèi)存的實際載體,其訪問效率決定著整個系統(tǒng)的運行速度。針對于DRAM訪問的特性,模塊會盡量減少對DRAM同一個bank不同row的連續(xù)數(shù)據(jù)訪問。實現(xiàn)方式為通過地址映射,將CACHE中的多個數(shù)據(jù)管理引擎映射到DRAM的不同bank,每個數(shù)據(jù)管理引擎每次管理一行cache line,這保證了同時發(fā)出的命令必然是散布在DRAM的不同bank上,并盡量減少對同一bank不同row的數(shù)據(jù)訪問。
使用x264作為測試平臺,在集成了本文所述的CACHE之后,通過對不同的視頻序列進行實際編碼,部分測試數(shù)據(jù)如表1。
表1
視頻序列名稱分辨率CACHE命中率 tennis1920x108073.29% streetview306x23482.87% soccer720x48080.38% station1920x108078.11% basketball1920x108077.68% riverbed1920x108068.35%
對于絕大多數(shù)的視頻序列,CACHE命中率都可以達到75%以上。對于一些運動方向特別復雜的視頻序列(如riverbed),由于其參考塊數(shù)據(jù)的位置較隨機,造成命中率有所下降,但也能保持在68%以上的命中率。
研究中所述的定制化CACHE,充分挖掘了編解碼算法以及系統(tǒng)總線和DRAM的特性,顯著提升了命中率和帶寬效率??梢詮V泛應用于各種視頻編解碼器的設計中,具有很高的實際應用價值。
[1]葉云飛,柯宜京.一種應用于超聲無損檢測的可變步長LMS算法[J].信息通信,2016(1):29-30.
[2]梅建偉,姜木霖,劉杰,等.一種應用于牽引型超級電容的充電裝置研制[J].湖北汽車工業(yè)學院學報,2013,27(2):63-65.
[3]姬偉杰,劉平,李杰,等.一種應用于地下腔體成像的新超寬帶成像算法[J].現(xiàn)代導航,2015(5):441-447.
A Custom CACHE Used in Ultra High Definition Video Codec Chip
Jiang Xianzhou
Fuzhou rockchips electronics Limited by Share Ltd,Shanghai 201203
Data bandwidth and access delay are the key to control the performance and cost of ultra high definition real time coding and decoding chip.This design in reference to the basis of traditional cache characteristic,make full use of the video codec for video data processing sequence,image data correlation,Axi bus and DRAM access features,the average access hit rate is increased to more than 75%,and significantly reduces the misses in the data read delay.
CACHE;DRAM;AXI
TN919.81
A
1009-6434(2016)6-0158-02