DDR存储系统访存延时的解析建模方法与流程

文档序号:12305627阅读:722来源:国知局
DDR存储系统访存延时的解析建模方法与流程
本发明属于嵌入式处理器系统级设计
技术领域
,具体地涉及一种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
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1