<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 32位DSP兩級cache的結構設計

32位DSP兩級cache的結構設計

作者: 時(shí)間:2008-06-12 來(lái)源:網(wǎng)絡(luò ) 收藏
摘要:采用自頂向下的流程設計了一款。該采用結構,第一級采用哈佛結構,第二級采用普林斯頓結構。本文詳細論述了該及采用的算法。
關(guān)鍵詞:cache,,存儲系統.

1引言

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

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

2 cache總體設計

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


圖1 cache的結構及互連簡(jiǎn)圖


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

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

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

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

3 cache的映射方式與地址結構

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

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

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

圖2 二級 cache的地址劃分


圖3 L2 cache tag 的組成

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

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

圖4 一級cache的地址劃分


tag的結構見(jiàn)圖5。

圖5 一級cache tag結構

其中,P位是數據存在位, M位是數據修改的標記位,用于寫(xiě)策略的實(shí)現。

4 寫(xiě)策略及cache替換算法

寫(xiě)策略通常采用寫(xiě)回或寫(xiě)直達,采用寫(xiě)回法時(shí),僅當cache中的某行數據被替換時(shí),才更新存儲器中相應數據。采用寫(xiě)直達法時(shí),則每次寫(xiě)操作都要同時(shí)更新cache和主存儲器中的數據。

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

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

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

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

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

5 如何根據地址在cache中找到所需要的數據

圖6 I cache查找數據的過(guò)程

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

6 數據塊傳輸

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

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

7 結束語(yǔ)

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

整個(gè)設計采用自頂向下的設計流程,用Verilog語(yǔ)言描述整個(gè)系統,在synopsys工具下進(jìn)行仿真和綜合。在綜合的結果中,指令cache的延遲最長(cháng),為4.3ns.整個(gè)cache系統的等效門(mén)數約24萬(wàn)個(gè)門(mén)。

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

參考文獻:

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

[2] 謝興軍等.哈佛體系結構的cache控制器設計. 計算機工程.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] 吳夢(mèng)潔 Cache controller的設計與研究 2004年2月

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

p2p機相關(guān)文章:p2p原理




關(guān)鍵詞: 結構設計 cache 兩級 DSP 32位

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>