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