本發(fā)明屬于嵌入式處理器系統(tǒng)級設(shè)計
技術(shù)領(lǐng)域:
,具體地涉及一種ddr存儲系統(tǒng)訪存延時的解析建模方法,應(yīng)用于嵌入式處理器系統(tǒng)級設(shè)計。
背景技術(shù):
:隨著處理器技術(shù)的大規(guī)模進(jìn)步,在一個單位面積內(nèi)的晶體管數(shù)目成倍增加。處理器吞吐量、內(nèi)存存儲量和內(nèi)存吞吐量都以指數(shù)倍數(shù)增長。這樣一來,存儲系統(tǒng)成為了一個不斷收緊的限制瓶頸。因此,設(shè)計一個高效的存儲系統(tǒng)結(jié)構(gòu)成為了一個很大的挑戰(zhàn)。存儲系統(tǒng)設(shè)計問題復(fù)雜,需要考慮大量不同維度的設(shè)計參數(shù),以做出最后的設(shè)計決策。當(dāng)前,主流的存儲技術(shù)是dram,這是存儲系統(tǒng)設(shè)計的基礎(chǔ);存儲器的組織結(jié)構(gòu)也存在大量的可選方案,對于dram來說,訪存通道的組織結(jié)構(gòu)以及行緩沖的大小都直接影響著延時和帶寬等指標(biāo);最后,優(yōu)化存儲系統(tǒng)機(jī)制策略對改進(jìn)系統(tǒng)的性能也有著重要的影響,基于dram的研究成果包括提升行緩沖命中率,挖掘訪存操作的bank并行度等。在設(shè)計過程中,快速且精確的性能評估方法對性能優(yōu)化起著至關(guān)重要的作用。面臨復(fù)雜的存儲系統(tǒng)設(shè)計時,已有的寄存器級設(shè)計方法雖然是較為精確的仿真方法,但是其建模過程復(fù)雜,仿真速度慢,已經(jīng)無法滿足需求。提高系統(tǒng)設(shè)計的抽象層次,系統(tǒng)級設(shè)計成為解決問題的必要方案。系統(tǒng)級設(shè)計主要通過高層抽象級性能評估來探索設(shè)計空間,通過對系統(tǒng)的關(guān)鍵指標(biāo)進(jìn)行重點(diǎn)分析,可以確定系統(tǒng)的關(guān)鍵設(shè)計參數(shù);在較高抽象層次對系統(tǒng)設(shè)計的關(guān)鍵問題進(jìn)行研究,建模和分析的代價較低,能夠減少低層設(shè)計的錯誤,避免了設(shè)計過程的反復(fù)過程,縮短了系統(tǒng)設(shè)計時間,降低了開發(fā)成本。當(dāng)前,高層抽象級性能評估的建模類型主要分為三種:1.信號級仿真模型:對應(yīng)rtl模型和周期精確tlm模型,如socdesigner等。此模型仿真準(zhǔn)確性較高,但建模周期長,仿真速度緩慢。2.結(jié)構(gòu)級仿真模型:對應(yīng)simplescalar、gem5等周期近似的tlm模型,其抽象層次提升,縮短建模仿真周期,但仿真精確度相對降低。3.解析模型:能夠提供個體微觀參數(shù)如何影響系統(tǒng)性能的明確數(shù)學(xué)關(guān)系,深入的揭示存儲子系統(tǒng)架構(gòu)特性和應(yīng)用程序特性的相互作用關(guān)系以及它們對性能的影響;在忽略硬件實(shí)現(xiàn)細(xì)節(jié)的情況下,量化分析影響性能的因素,可以用來在短時間內(nèi)縮減原先巨大的設(shè)計空間。解析模型具有靈活性高、仿真速度快的特點(diǎn),雖然精確度降低,但可以把性能模型的建立簡單化,實(shí)現(xiàn)準(zhǔn)確的抽象模型。技術(shù)實(shí)現(xiàn)要素:為了解決上述技術(shù)問題,本發(fā)明目的是:提供了一種ddr存儲系統(tǒng)訪存延時的解析建模方法,分析訪存請求服務(wù)流程,引入排隊(duì)論和訪存請求的訪存模態(tài)評估訪存延時性能,在確保模型精確性的基礎(chǔ)上減少評估時間。本發(fā)明的技術(shù)方案是:一種ddr存儲系統(tǒng)訪存延時的解析建模方法,包括以下步驟:s01:分析ddr存儲系統(tǒng)訪存服務(wù)流程,將訪存延時分為ddr存儲控制器延時和存儲器延時;s02:對ddr存儲控制器延時進(jìn)行解析建模,將存儲系統(tǒng)抽象為m/d/1排隊(duì)模型,基于排隊(duì)模型對訪存請求的排隊(duì)延時進(jìn)行建模,將訪存請求的排隊(duì)延時近似為ddr存儲控制器延時;s03:根據(jù)訪存請求的訪存模態(tài),對訪存請求的存儲器服務(wù)時間進(jìn)行分類,根據(jù)行緩沖是否命中的訪存模態(tài)和ddr時序約束,對ddr存儲器延時進(jìn)行解析建模;s04:將ddr存儲控制器延時模型和ddr存儲器延時模型疊加,得到訪存延時的解析模型。優(yōu)選的,所述排隊(duì)模型的建模方法為,將通道左邊的部分建模為排隊(duì)模型中的等待隊(duì)列,將通道右邊的部分建模為排隊(duì)模型中的服務(wù)臺。優(yōu)選的,所述基于排隊(duì)模型對訪存請求的排隊(duì)延時進(jìn)行建模中,在無優(yōu)先級的狀態(tài)下,一個新到達(dá)的訪存請求必須等待先于其到達(dá)的其他訪存請求服務(wù)完畢之后才能完成排隊(duì),則總等待時間的期望值即系統(tǒng)的平均排隊(duì)延時為:式中μ即隊(duì)列平均服務(wù)時間,等同于存儲器平均忙碌時間,λ為訪存請求平均到達(dá)率,即訪存請求平均到達(dá)間隔,定義為排隊(duì)系統(tǒng)的服務(wù)率。優(yōu)選的,所述存儲器服務(wù)時間為一次訪存請求對應(yīng)的訪存命令將占據(jù)ddr命令總線的時間。優(yōu)選的,所述存儲器服務(wù)時間的分類包括,兩次訪存請求都為行緩沖命中,存儲器服務(wù)時間為tccd;第一次訪存請求為行緩沖命中,第二次訪存請求為行緩沖未命中,當(dāng)?shù)诙卧L存請求與第一次訪存請求訪問同一bank時,存儲器服務(wù)時間為trtp,當(dāng)?shù)诙卧L存請求與第一次訪存請求訪問不同bank時,存儲器服務(wù)時間為tck;第一次訪存請求為行緩沖未命中,第二次訪存請求為行緩沖命中,存儲器服務(wù)時間為trp+trcd+tccd,其中,trp為預(yù)充電命令到激活命令之間的最小時間間隔,trcd為激活命令與讀寫命令之間的最小時間間隔;兩次訪存請求都為行緩沖未命中,當(dāng)兩次訪存請求訪問同一bank時,存儲器服務(wù)時間為trp+trcd+trtp,當(dāng)兩次訪存請求訪問不同bank時,存儲器服務(wù)時間為trp+trcd+tck。優(yōu)選的,所述存儲器延時的訪存模態(tài)包括:行緩沖命中訪問:控制器直接發(fā)出讀命令,存儲器在tcas時間后返回數(shù)據(jù),tcas為列訪問選通延時;行緩沖未命中訪問,且目標(biāo)bank處于空閑狀態(tài):控制器先發(fā)出激活命令,然后發(fā)出讀命令,訪存延時為trcd+tcas;行緩沖未命中訪問,且目標(biāo)bank處于激活狀態(tài):控制器先發(fā)出預(yù)充電命令,關(guān)閉已激活的行地址空間,然后發(fā)出激活命令與讀命令,訪存延時為trp+trcd+tcas;優(yōu)選的,行緩沖未命中時,忽略bank處于空閑狀態(tài)的情況,則ddr存儲器延時簡化為:tml=rbh·tcas+(1-rbh)·(trp+trcd+tcas)式中,rbh為行緩沖命中率。與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)是:1、本發(fā)明的ddr存儲系統(tǒng)訪存延時的解析建模方法相比傳統(tǒng)的仿真模型,能夠顯著的減少評估時間。而且,本發(fā)明中全面分析和建模了ddr存儲系統(tǒng)訪存延時的兩個部分,減少了誤差。此外,本發(fā)明采用排隊(duì)論和ddr訪存模態(tài)的分析方法,建模和分析的代價較低,能夠減少低層設(shè)計的錯誤,降低了開發(fā)成本。因此本發(fā)明實(shí)現(xiàn)了對ddr存儲系統(tǒng)高速度、低成本的精確評估。2、研究ddr存儲系統(tǒng)對研究soc系統(tǒng)具有重要的意義。soc系統(tǒng)性能的瓶頸越來越多的限制在存儲系統(tǒng)方面,存儲系統(tǒng)設(shè)計的優(yōu)劣都直接關(guān)系到soc系統(tǒng)芯片的性能。在設(shè)計過程中,快速且精確的性能評估方法對性能優(yōu)化起著至關(guān)重要的作用。因此使用解析建模的方法對ddr存儲系統(tǒng)進(jìn)行研究分析,可以量化的分析影響存儲系統(tǒng)性能的因素,并大大減少了性能評估驗(yàn)證時間,具有靈活性高、仿真速度快的特點(diǎn),可以更好的指導(dǎo)系統(tǒng)芯片功能的設(shè)計。附圖說明下面結(jié)合附圖及實(shí)施例對本發(fā)明作進(jìn)一步描述:圖1為ddr存儲系統(tǒng)訪存請求的服務(wù)流程圖;圖2為ddr存儲系統(tǒng)訪存過程的系統(tǒng)級抽象示意圖;圖3為ddr存儲系統(tǒng)的排隊(duì)模型示意圖;圖4a為ddr存儲系統(tǒng)訪存操作的時序圖,其中兩次訪存請求都為行緩沖命中;圖4b為ddr存儲系統(tǒng)訪存操作的時序圖,其中第一次訪存請求為行緩沖命中,第二次訪存請求為行緩沖未命中;圖4c為ddr存儲系統(tǒng)訪存操作的時序圖,其中第一次訪存請求為行緩沖未命中,第二次訪存請求為行緩沖命中;圖4d為ddr存儲系統(tǒng)訪存操作的時序圖,其中兩次訪存請求都為行緩沖未命中。具體實(shí)施方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明了,下面結(jié)合具體實(shí)施方式并參照附圖,對本發(fā)明進(jìn)一步詳細(xì)說明。應(yīng)該理解,這些描述只是示例性的,而并非要限制本發(fā)明的范圍。此外,在以下說明中,省略了對公知結(jié)構(gòu)和技術(shù)的描述,以避免不必要地混淆本發(fā)明的概念。實(shí)施例:文中ddr訪問操作時用到的關(guān)鍵時序參數(shù)描述如下:參數(shù)描述trcd激活命令與讀寫命令之間的最小時間間隔tras激活命令到預(yù)充電命令之間的最小時間間隔trp預(yù)充電命令到激活命令之間的最小時間間隔tcas列訪問選通延時tccd兩次列地址訪問命令之間的最小時間間隔trc連續(xù)激活同一bank行地址的最小時間間隔trrd連續(xù)激活不同bank行地址的最小時間間隔如圖1所示,來自訪存設(shè)備的訪存請求時序同步后進(jìn)入訪存請求隊(duì)列,經(jīng)過地址映射并轉(zhuǎn)化為相應(yīng)的訪存命令進(jìn)入命令隊(duì)列,接著從命令隊(duì)列中發(fā)射執(zhí)行,通過接口發(fā)送到ddr設(shè)備。一段時間后,ddr設(shè)備處理完命令返回響應(yīng)數(shù)據(jù),存儲控制器收到返回數(shù)據(jù)后,按照接口傳輸協(xié)議,經(jīng)過時序同步,向訪存設(shè)備返回數(shù)據(jù)。從圖中可以看出,訪存延時主要由ddr存儲控制器延時與ddr存儲器延時組成。因此,對存儲系統(tǒng)的訪存延時進(jìn)行解析建模,存儲系統(tǒng)的總平均延時可表示為存儲控制器延時tmcl(memorycontrollerlatency)和存儲器延時tml(memorylatency)兩部分的總和。訪存請求的排隊(duì)延時是存儲控制器延時的重要部分。當(dāng)訪存請求進(jìn)入存儲控制器訪存請求隊(duì)列時,訪存請求隊(duì)列還有未處理的訪存請求,此時訪存請求需要排隊(duì)等待處理,產(chǎn)生排隊(duì)延時。訪存請求的訪存過程可歸納為圖2所示。訪存請求到達(dá)ddr存儲系統(tǒng)后,進(jìn)入訪存請求隊(duì)列,經(jīng)過相應(yīng)的地址映射、命令調(diào)度等,由通道發(fā)送至ddr存儲器。將圖中通道左邊的部分建模為排隊(duì)模型中的等待隊(duì)列,將通道右邊的部分建模為排隊(duì)模型中的服務(wù)臺,如圖3所示。根據(jù)排隊(duì)模型的輸入過程、排隊(duì)規(guī)則和服務(wù)機(jī)制三大特性建立存儲系統(tǒng)的m/d/1的排隊(duì)模型進(jìn)行性能分析。1.輸入過程soc各個主設(shè)備發(fā)起訪存請求經(jīng)過片上通信結(jié)構(gòu)到達(dá)ddr存儲控制器的過程就是交易到達(dá)排隊(duì)模型的輸入過程。假設(shè)各個交易的到達(dá)相互獨(dú)立,可以將輸入過程近似為泊松分布,即到達(dá)的顧客間隔時間服從負(fù)指數(shù)分布(m),且顧客的到達(dá)是相互獨(dú)立的。訪存請求的平均到達(dá)間隔為λ為平均到達(dá)率。2.排隊(duì)規(guī)則訪存請求進(jìn)入排隊(duì)隊(duì)列后,存儲控制器針對不同的訪存特性,通過調(diào)度交易的執(zhí)行順序來優(yōu)化訪問性能。在此排隊(duì)模型中,采用先來先服務(wù)(fcfs)的排隊(duì)規(guī)則,當(dāng)下一個訪存請求到達(dá)時,若服務(wù)臺被占有,則必須等到正在接受服務(wù)的請求被服務(wù)完畢后才能得到服務(wù)。3.服務(wù)臺此排隊(duì)模型將ddr存儲器中的bank及其他用于數(shù)據(jù)讀寫的結(jié)構(gòu)如敏感放大器,數(shù)據(jù)鎖存器等抽象為服務(wù)臺,將包含若干bank的存儲系統(tǒng)看做單服務(wù)臺系統(tǒng);服務(wù)時間包括預(yù)充電、激活、行選、列選等訪存命令的執(zhí)行時間。綜上,存儲系統(tǒng)可以抽象為m/d/1的排隊(duì)模型,在無優(yōu)先級的狀態(tài)下,一個新到達(dá)的訪存請求必須等待先于其到達(dá)的其他訪存請求服務(wù)完畢之后才能完成排隊(duì),則總等待時間的期望值即系統(tǒng)的平均排隊(duì)延時為:式中μ即隊(duì)列平均服務(wù)時間,等同于存儲器平均忙碌時間。λ為訪存請求平均到達(dá)率,即訪存請求平均到達(dá)間隔。定義為排隊(duì)系統(tǒng)的服務(wù)率。由于排隊(duì)延時是ddr存儲控制器延時的主要組成部分,本發(fā)明中的ddr存儲控制器延時即定義為訪存請求的排隊(duì)延時,它與訪存請求的到達(dá)時間和處理速度有關(guān),即兩個關(guān)鍵的因素:一是訪存請求的到達(dá)時間,二是存儲器的忙碌時間。從而得到了ddr存儲控制器的延時如下:ddr存儲控制器中訪存請求的流水操作會造成排隊(duì)延時,而訪存請求和訪存命令并非一一對應(yīng),當(dāng)存儲控制器由于先前發(fā)起的命令和當(dāng)前命令之間的時序約束而不能發(fā)起任何命令時,此時存儲器是忙碌的。一次訪存請求對應(yīng)的訪存命令將占據(jù)ddr命令總線一段時間,這段時間定義為存儲器服務(wù)時間。存儲器服務(wù)時間與具體的訪存請求相關(guān),處理一個訪存請求所需的ddr命令數(shù)目與訪存模態(tài)相關(guān)。圖4為ddr訪存操作的時序圖。根據(jù)行緩沖是否命中,存儲器服務(wù)時間需要分四種情況進(jìn)行討論。1.訪存請求①、②都為行緩沖命中如圖4a,訪存請求①、②轉(zhuǎn)化為兩個讀訪存命令,分別對列地址空間a和b進(jìn)行訪問。此時,對于列地址空間訪問都屬于行緩沖命中。列地址空間b的訪問需要在前一次訪存命令發(fā)出后間隔時間tccd才能發(fā)出,即存儲器服務(wù)時間為tccd。2.訪存請求①行緩沖命中、訪存請求②行緩沖未命中如圖4(b),此時,由于訪存請求②為行緩沖未命中,存儲控制器需要額外發(fā)起預(yù)充電和激活命令,占用ddr命令總線。當(dāng)訪存請求②與訪存請求①訪問同一bank時,訪存請求②的預(yù)充電命令需要等待trtp的時間間隔才能發(fā)出,即存儲器服務(wù)時間為trtp。當(dāng)訪存請求②與訪存請求①訪問不同bank時,訪存請求②對應(yīng)的訪存命令(pre)可在訪存請求①發(fā)出后的下一時鐘周期發(fā)出,因此間隔時間為tck,即存儲器服務(wù)時間為tck。3.訪存請求①行緩沖未命中、訪存請求②行緩沖命中如圖4(c),訪存請求①屬于行緩沖未命中訪問,存儲控制器需要額外發(fā)起預(yù)充電和激活命令。列地址b的訪問需要在前一次訪存命令發(fā)出后間隔tccd時間才能發(fā)出,則存儲器服務(wù)時間為trp+trcd+tccd。4.訪存請求①、②都為行緩沖未命中如圖4(d),兩次訪存請求都為行緩沖未命中,存儲控制器需要額外發(fā)起預(yù)充電和激活命令。當(dāng)訪存請求②與訪存請求①訪問同一bank時,訪存請求②的預(yù)充電命令需要等待trtp的時間間隔才能發(fā)出,即存儲器服務(wù)時間為trp+trcd+trtp。當(dāng)訪存請求②與訪存請求①訪問不同bank時,訪存請求②對應(yīng)的訪存命令(pre)可在訪存請求①發(fā)出后的下一時鐘周期發(fā)出,因此間隔時間為tck,即存儲器服務(wù)時間為trp+trcd+tck。因此,定義訪存模式參數(shù)為在程序執(zhí)行期間,行緩沖是否命中的不同情況出現(xiàn)的次數(shù)。根據(jù)行緩沖是否命令的四種情況,總結(jié)常見的幾種ddr命令和訪存模式如下表所示。存儲器服務(wù)時間是訪存延時的關(guān)鍵組成,獲得訪存請求總體存儲器服務(wù)時間可以使用簡化的統(tǒng)計方法。則訪存請求總的存儲器服務(wù)時間為:tbusy_sum=n1·tccd+n2·trtp+n3·tck+n4·(trp+trcd+tccd)+n5·(trp+trcd+trtp)+n6·(trp+trcd+tck)=(n1+n4)·tccd+(n2+n5)·(trp+trcd+trtp)+(n3+n6)·(trp+trcd+tck)-(n2+n3-n4)·(trp+trcd)為了簡化分析過程,考慮到n1+n2+n3為前一次訪存請求行緩沖命中的次數(shù),n1+n4為后一次訪存請求行緩沖命中的次數(shù)。對于一組訪存請求,行緩沖命中的次數(shù)是相同的,因此(n1+n2+n3)-(n1+n4)=n2+n3-n4≈0簡化后,訪存請求總的存儲器服務(wù)時間可表示為:tbusy_sum=(n1+n4)·tccd+(n2+n5)·(trp+trcd+trtp)+(n3+n6)·(trp+trcd+tck)=m1·tccd+m2·(trp+trcd+trtp)+m3·(trp+trcd+tck)為了檢查模式參數(shù)和ddr時序?qū)Υ鎯ζ鞣?wù)時間的影響,將平均存儲器服務(wù)時間定義為每一個訪存請求的時間。當(dāng)一組訪存請求的總數(shù)為n時,則訪存請求的平均存儲器服務(wù)時間為:存儲器的訪存模式簡化為行緩沖命中,相同bank的行緩沖未命中和不同bank的行緩沖命中三種情況。因此,定義行緩沖命中率為rbh(rowbufferhit)、相同bank的行緩沖未命中率為sbm(samebankmiss)、不同bank的行緩沖未命中率為dbm(differentbankmiss),則平均存儲器服務(wù)時間可以用命中率來表示為:tbusy_average=rbh·tccd+sbm·(trp+trcd+trtp)+dbm·(trp+trcd+tck)平均服務(wù)時間服從定長分布(d),服務(wù)時間的均值為δ為平均服務(wù)率。則平均服務(wù)率為:ddr在收到訪存請求到返回數(shù)據(jù)之間存在延時。由于訪存命令與訪存請求并不是一一對應(yīng)的,一次訪存請求可能對應(yīng)多條訪存命令,這些操作之間存在時序約束,構(gòu)成了ddr存儲器延時的主要部分。影響存儲器延時的訪存模態(tài)可以總結(jié)為三種:1.行緩沖命中訪問:此時控制器直接發(fā)出讀命令,存儲器返回數(shù)據(jù)在tcas時間后返回數(shù)據(jù)。2.行緩沖未命中訪問,且目標(biāo)bank處于空閑狀態(tài):此時控制器需要先發(fā)出激活命令,然后才能發(fā)出讀命令,訪存延時為trcd+tcas。3.行緩沖未命中訪問,且目標(biāo)bank處于激活狀態(tài):此時控制器需要先發(fā)出預(yù)充電命令,關(guān)閉已激活的行地址空間,然后發(fā)出激活命令與讀命令,訪存延時為trp+trcd+tcas。通常情況下,ddr存儲控制器采用開頁策略,即每次發(fā)出訪存請求后,保持該行地址空間為激活狀態(tài),此時,對于一組訪存請求來說,行緩沖未命中時大部分情況下,bank是處于激活狀態(tài)的,bank處于空閑狀態(tài)的情況可以忽略。因此,ddr存儲器延時的計算方法可以簡化為:tml=rbh·tcas+(1-rbh)·(trp+trcd+tcas)式中,rbh為行緩沖命中率。行緩沖命中率是決定ddr存儲器延時的關(guān)鍵因素。行緩沖命中率主要由負(fù)載訪存的局部性決定,影響行緩沖命中率的存儲系統(tǒng)關(guān)鍵設(shè)計參數(shù)是行緩沖的大小及bank數(shù)量。行緩沖命中率將通過分析訪存請求追蹤記錄,準(zhǔn)確地獲得,用于估計ddr存儲器服務(wù)時間與延時。綜上所述,ddr存儲系統(tǒng)的訪存延時由兩部分構(gòu)成,分別為ddr存儲控制器延時tmcl和存儲器延時tml。可以得到ddr存儲系統(tǒng)的訪存延時為:tlatency=tmcl+tml。應(yīng)當(dāng)理解的是,本發(fā)明的上述具體實(shí)施方式僅僅用于示例性說明或解釋本發(fā)明的原理,而不構(gòu)成對本發(fā)明的限制。因此,在不偏離本發(fā)明的精神和范圍的情況下所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。此外,本發(fā)明所附權(quán)利要求旨在涵蓋落入所附權(quán)利要求范圍和邊界、或者這種范圍和邊界的等同形式內(nèi)的全部變化和修改例。當(dāng)前第1頁12