當(dāng)前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀]采用自頂向下的流程設(shè)計了一款32位DSP的cache。該cache采用兩級結(jié)構(gòu),第一級采用哈佛結(jié)構(gòu),第二級采用普林斯頓結(jié)構(gòu)。本文詳細論述了該cache的結(jié)構(gòu)設(shè)計及采用的算法。

摘要:采用自頂向下的流程設(shè)計了一款32位DSP的cache。該cache采用兩級結(jié)構(gòu),第一級采用哈佛結(jié)構(gòu),第二級采用普林斯頓結(jié)構(gòu)。本文詳細論述了該cache的結(jié)構(gòu)設(shè)計及采用的算法。
關(guān)鍵詞: cache,DSP,存儲系統(tǒng).

1引言

隨著半導(dǎo)體技術(shù)的發(fā)展,DSP性能不斷提高,被廣泛應(yīng)用在控制,通信,家電等領(lǐng)域中。

DSP內(nèi)部核心部件ALU具有極高的處理速度,而外部存儲器的速度相對較低,存儲系統(tǒng)已成為制約DSP發(fā)展的一個瓶頸。本文參照計算機存儲結(jié)構(gòu),利用虛擬存儲技術(shù),對存儲系統(tǒng)的結(jié)構(gòu)進行了改進。在DSP中引入二級Cache存儲器結(jié)構(gòu),在較小的硬件開銷下提高了DSP的工作速度。結(jié)合高性能低功耗DSP cache設(shè)計這個項目,對兩級cache的結(jié)構(gòu)和算法做了探討。

2 cache總體設(shè)計

    傳統(tǒng)的存儲器主要由Dram組成,它的工作速度較慢,cache存儲器主要由SRAM組成。在DSP中,存儲系統(tǒng)可分層設(shè)計,將之分為兩部分:容量較小的cache存儲器和容量較大的主存儲器,cache中存放著和主存中一致的較常用的指令與數(shù)據(jù)。DSP執(zhí)行操作時可先向速度較快


圖1  cache的結(jié)構(gòu)及互連簡圖

 

 


的cache取指令或數(shù)據(jù),如果不命中則再從主存取指令或數(shù)據(jù)。通過提高cache的命中率可以大大加快DSP的整體運行速度,從而緩解由存儲系統(tǒng)引起的瓶頸問題。

    基于上述原理,我們設(shè)計了DSP的cache總體結(jié)構(gòu),如圖1所示。圖中設(shè)計采用了兩級cache設(shè)計,第一級cache采用分立結(jié)構(gòu),將指令cache和數(shù)據(jù)cache分開設(shè)計,這樣CPU可以對數(shù)據(jù)和指令進行平行操作,結(jié)合DSP取址,譯碼,讀數(shù),執(zhí)行的四級流水線結(jié)構(gòu),充分提高系統(tǒng)效率。二級cache采用統(tǒng)一結(jié)構(gòu),數(shù)據(jù)和指令共用一個cache,此時可以根據(jù)程序執(zhí)行的具體情況,二級cache自動平衡指令和數(shù)據(jù)間的負載,從而提高命中率。DSP若在一級cache中未找到需要的指令和數(shù)據(jù),則可在二級cache中尋找。此結(jié)構(gòu)下,一級cache找不到的數(shù)據(jù)和指令多數(shù)可在二級cache中找到,提高了整個cache系統(tǒng)的命中率。

增加一級cache的容量可提高命中率,但隨著cache容量增大,電路結(jié)構(gòu)將變得復(fù)雜,所用的芯片面積、功耗也會加大,而且cache的訪問時間也會變長,從而影響到ALU的速度。綜合考慮速度,面積,功耗等因素,我們把一級指令cache和數(shù)據(jù)cache的容量均定為4KB。

二級cache處于一級cache和主存儲器之間,訪問時間是3到4個ALU時鐘周期,其容量一般是為一級cache的4到8倍。設(shè)計中我們將二級cache的容量為定位32KB。

3 cache映射方式與地址結(jié)構(gòu)

cache采用的映射方式通常有直接映射、關(guān)聯(lián)映射、組關(guān)聯(lián)映射三種,直接映射命中率低,容易發(fā)生抖動,關(guān)聯(lián)映射雖然命中率較高,但電路復(fù)雜,權(quán)衡電路復(fù)雜性和命中率,我們主要采用組關(guān)聯(lián)映射方法。在組關(guān)聯(lián)映射中,可將主存空間分成塊,cache空間分為組,一組包含多行,行的大小與塊的大小相等。主存中的特定塊只能映射到cache中的特定組,但可以映射到組內(nèi)的不同行。若用j表示主存的塊號,i表示cache中的組號,m表示cache的總行數(shù),當(dāng)cache分為v個組,每組k個行時,存在以下關(guān)系(見公式1、2),

此種映射方式通常稱為k路組關(guān)聯(lián)映射。利用公式(2),我們可以根據(jù)塊的物理地址計算它能映射到的組號,塊j 能被映射到相應(yīng)組中k行的任何一行中。

設(shè)計中二級cache采用4路組相聯(lián)的結(jié)構(gòu),分為共256組,每組4行,每行8個32位單元,總?cè)萘课?2KB。cache的控制邏輯將存儲器地址簡單的分為三個域:標(biāo)記域,組號和字。為了降低系統(tǒng)的功耗,采用了標(biāo)記(tag)和數(shù)據(jù)體相分離的方案。為了加快訪問速度,把cache中行號相同的塊放在一個數(shù)據(jù)體中實現(xiàn)。這樣cache就可分為4個標(biāo)記存儲器,4個數(shù)據(jù)存儲器。每個標(biāo)記存儲器可放256個標(biāo)記,每個數(shù)據(jù)存儲體有256行數(shù)據(jù)。地址的劃分如圖2,tag的結(jié)構(gòu)見圖3。

圖2  二級 cache的地址劃分

 


圖3  L2 cache tag 的組成

  

      

 

一級指令cache和數(shù)據(jù)cache采用組關(guān)聯(lián)的結(jié)構(gòu),均分為32個組,每組4行,每行含有8個32位的單元,每個容量位4KB。一級cache的組和行與二級cache的組和行大小對應(yīng),在二級cache到指令cache和數(shù)據(jù)cache間,組之間我們采用直接映射的方式,組內(nèi)用全關(guān)聯(lián)方式。這樣我們結(jié)合了組關(guān)聯(lián)的靈活與全關(guān)聯(lián)的命中率高的優(yōu)點。

和二級cache相似,也把每組塊號相同的數(shù)據(jù)放在同一個數(shù)據(jù)體中,共分為4個標(biāo)記存儲器,四個數(shù)據(jù)體存儲器。每個標(biāo)記存儲器可放32個標(biāo)記,每個數(shù)據(jù)存儲體有32行數(shù)據(jù)。對主存地址的劃分如圖4。

圖4   一級cache的地址劃分

 

 


tag的結(jié)構(gòu)見圖5。

圖5  一級cache tag結(jié)構(gòu)

 

 

 

其中,P位是數(shù)據(jù)存在位, M位是數(shù)據(jù)修改的標(biāo)記位,用于寫策略的實現(xiàn)。

4 寫策略及cache替換算法

寫策略通常采用寫回或?qū)懼边_,采用寫回法時,僅當(dāng)cache中的某行數(shù)據(jù)被替換時,才更新存儲器中相應(yīng)數(shù)據(jù)。采用寫直達法時,則每次寫操作都要同時更新cache和主存儲器中的數(shù)據(jù)。

所針對的DSP處于單處理器工作模式下,考慮到整個系統(tǒng)的數(shù)據(jù)處理效率,設(shè)計時我們采用寫回法更新數(shù)據(jù)。寫回法中,如果一級cache中的數(shù)據(jù)發(fā)生改變而未立即寫回L2 cache和主存儲器,或者L2 cache中的數(shù)據(jù)發(fā)生改變,未立即寫回主存儲器,那么就會造成數(shù)據(jù)不一致而導(dǎo)致錯誤。為保證數(shù)據(jù)的一致性,在駐留于cache中的某一塊被替換之前,必須考慮它是否在cache中被修改。如果沒有修改,則cache中原來的塊就可以直接被替換掉,而不需回寫;如果修改過,則意味著對cache這一行至少執(zhí)行過一次寫操作,那么在替換之前主存儲器中的數(shù)據(jù)也必須隨之做相應(yīng)修改。為此我們在cache的tag中設(shè)置了修改位M,在執(zhí)行回寫操作前我們均對修改位進行判斷,其值為1時表示數(shù)據(jù)被修改過,需回寫,為0則表示未修改,不進行回寫。

Cache的替換算法有很多種 ,為了提高命中率,在設(shè)計時采用了優(yōu)化的LRU算法:棧鏈法[6]。棧鏈法的管理規(guī)則如下:

1) 把本次訪問的塊號與棧中保存的所有塊號進行比較。如果發(fā)現(xiàn)有相等的,則cache命中,本次訪問的塊號從棧頂壓入,棧內(nèi)各單元的塊號依次往下移,直至與本次訪問的塊號相等的那個單元為止,再往下的單元直至棧底都不改變。

2)如果相聯(lián)比較沒有發(fā)現(xiàn)相等的,則cache失效。棧底單元中的塊號就是要被替換的塊號。

實現(xiàn)時采用四個存儲單元,每個單元兩位,用來保存當(dāng)前cache組的四個塊號。首先是相聯(lián)比較,以組號為地址,從四個標(biāo)記寄存器中讀取數(shù)據(jù),和地址進行比較,然后就可以產(chǎn)生命中與否的信號,以及命中時相應(yīng)的塊號。

如何根據(jù)地址在cache中找到所需要的數(shù)據(jù)

    

              

圖6 I cache查找數(shù)據(jù)的過程  

能夠映射到cache中某一行的數(shù)據(jù)很多,那么是怎樣在cache中找到所需要的數(shù)據(jù)呢?主要是借助于標(biāo)記。以 I  cache 為例,當(dāng)CPU發(fā)出讀信號時,則首先以組號PA[7:3]為地址,從I cache的四組標(biāo)記寄存器中讀取標(biāo)記,送往對應(yīng)的比較器,和地址信號PA[31:8]進行比較,如果比較相等,且存在位有效,則表示命中。HIT1表示第1組命中,依次類推。HIT1 ,HIT2,HIT3,HIT4經(jīng)過或門以后,就是總體命中與否的輸出信號。如果HIT1有效,以PA[7:0]對cache的數(shù)據(jù)體1進行尋址,讀取相應(yīng)的數(shù)據(jù)。其它情況類似。在這個過程中,可以看出,地址和數(shù)據(jù)之間的一一對應(yīng)關(guān)系。

6 數(shù)據(jù)塊傳輸

數(shù)據(jù)塊傳輸是對存儲器的一種重要操作,根據(jù)譯碼電路的層次性,知道如果只是地址的低位發(fā)生改變,譯碼電路很快就可以達到穩(wěn)定狀態(tài),選擇對應(yīng)的單元,進行讀寫。因此對數(shù)據(jù)進行整組傳輸,有利于提高傳輸?shù)男?。在該cache中,對存儲器的訪問都是定長的,如果產(chǎn)生不命中的信號,則立即產(chǎn)生8拍定長的讀寫信號。具體實現(xiàn)時,設(shè)計了一個控制塊傳輸信號的模塊。每當(dāng)產(chǎn)生不命中的信號,則把塊傳輸?shù)某跏嫉刂纷x入到該模塊的初始地址寄存器,設(shè)置相應(yīng)的傳輸單元數(shù)為8,以及對應(yīng)的cache單元的讀寫信號。在每個時鐘的上升沿,地址寄存器增1,傳輸單元個數(shù)寄存器減1,當(dāng)傳輸單元個數(shù)寄存器的數(shù)據(jù)為0時,就結(jié)束傳輸。

由于L2 cache是個單端口的存儲器,一級cache采用哈佛結(jié)構(gòu),對數(shù)據(jù)和指令同時進行操作,當(dāng)D cache和I cache失效時,都會訪問L2 cache,這樣就有可能產(chǎn)生沖突。為了解決這個問題,在塊傳輸控制的模塊中,設(shè)置了一位busy位,用來標(biāo)志總線忙狀態(tài)。當(dāng)某個請求得到響應(yīng),其余的請求只有進入等待狀態(tài)。在設(shè)計時,制定了訪問L2 cache的優(yōu)先級協(xié)議:讀指令不命中的優(yōu)先級最高,寫數(shù)據(jù)不命中的優(yōu)先級次之,讀數(shù)據(jù)不命中的優(yōu)先級最低。當(dāng)I cache和D cache同時產(chǎn)生不命中的信號時,根據(jù)優(yōu)先級協(xié)議來訪問L2 cache。

7 結(jié)束語

在命中率方面,采用兩級cache結(jié)構(gòu)及組關(guān)聯(lián)映射方法提高了cache系統(tǒng)的命中率。在數(shù)據(jù)處理效率方面,由于一級cache采用哈佛結(jié)構(gòu),指令和數(shù)據(jù)可并行操作,顯著提高了系統(tǒng)的數(shù)據(jù)處理能力。在功耗方面,采用了數(shù)據(jù)體和標(biāo)記相分離的措施,這使得只有在cache命中的情況下,才會訪問數(shù)據(jù)體,可降低系統(tǒng)的功耗。

整個設(shè)計采用自頂向下的設(shè)計流程,用Verilog語言描述整個系統(tǒng),在synopsys工具下進行仿真和綜合。在綜合的結(jié)果中,指令cache的延遲最長,為4.3ns.整個cache系統(tǒng)的等效門數(shù)約24萬個門。

作者的創(chuàng)新點:設(shè)置busy位標(biāo)志總線忙狀態(tài),并制定優(yōu)先級協(xié)議處理多信號同時訪問總線的情況,有效解決了總線的訪問沖突問題。

 

參考文獻:

[1] 曲文新等.“龍騰”R2微處理器cache單元的設(shè)計與實現(xiàn).計算機工程與應(yīng)用.2006.17

[2] 謝興軍等.哈佛體系結(jié)構(gòu)的cache控制器設(shè)計. 計算機工程.2004.11

[3] Hennessy J L,Patterson.D A Computer Architecture :A Quantiative Approach. 3nd,San Mateo:Morgan Kaufmann Publishers,2002

[4] 王文彬等. P2P Web Cache模型性能可行性分析.微計算機信息,2006 6-3.

[5] 吳夢潔  Cache controller的設(shè)計與研究  2004年2月

[6] 程由猛,陳書明.高性能DSP片內(nèi)二級Cache控制器設(shè)計與優(yōu)化.第八屆計算機工程與工藝全國年會,2003.4

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉