首页 / 性能评估装置及性能评估方法

性能评估装置及性能评估方法无效专利 发明

技术领域

[0001] 本发明是关于一种评估方法,特别是关于一种存储器控制器的性能评估装置与性能评估方法。

相关背景技术

[0002] 一般而言,存储器的带宽(bandwidth)利用率可以做为评估一个存储器控制器的性能高低的判断依据。在大部分的情况下,存储器控制器的存取命令发生页命中(page hit)的比例越高,通常代表着较高的带宽利用率,也就是存储器控制器具有较佳的性能。因此,熟知的测试方式通常会以存取命令的页命中率来推测存储器的带宽利用情形,以便判断存储器控制器的性能高低。
[0003] 然而,在某些情况下,存取命令发生页命中的比例虽然很高,但是存储器的带宽利用率却反而降低。也就是说,熟知的测试方式使用页命中率来评估存储器控制器的性能,但是页命中率无法总是正确反映出存储器的带宽利用状态。
[0004] 因此,有必要提供一种存储器控制器的性能评估方法,以解决存储器控制器的性能无法被准确评估的问题。

具体实施方式

[0047] 在本案说明书全文(包括权利要求书)中所使用的“耦接(或连接)”一词可指任何直接或间接的连接手段。举例而言,若文中描述第一装置耦接(或连接)于第二装置,则应该被解释成该第一装置可以直接连接于该第二装置,或者该第一装置可以通过其他装置或某种连接手段而间接地连接至该第二装置。另外,凡可能之处,在附图及实施方式中使用相同标号的组件/构件/步骤代表相同或类似部分。不同实施例中使用相同标号或使用相同术语的组件/构件/步骤可以相互参照相关说明。
[0048] 图1A是依照本发明的一实施例所绘示的性能评估装置100A的电路方块(circuit block)示意图。在图1A所示实施例中,性能评估装置100A可以是存储器控制器11的测试机台。性能评估装置100A可以对存储器控制器11(待测物)进行功能验证与性能评估。性能评估装置100A包括检测模块110、计算模块120以及测试单元130。测试单元130可以提供测试样本(test pattern)给待测物(存储器控制器11),而此测试样本包含一个或多个存取请求req。本实施例并不限制测试单元130的实施方式。举例来说,测试单元130可以是熟知的存储器测试装置或其他测试组件/电路。
[0049] 存储器控制器11可依据接收到的存取请求req而产生对应的存取命令给存储器12,所述存取命令可以是读取命令或写入命令。亦即,存储器控制器11可以依据存取请求req来对存储器12进行存取操作。依照设计需求,存储器12可以是动态随机存取器(Dynamic Random Access Memory,DRAM)。
[0050] 一般而言,存储器控制器11可以检查所述存取命令是否发生页命中(page hit)和/或发生页错失(page miss)。本实施例并不限制存储器控制器11检查所述存取命令的实施方式。举例来说,所述检查可以是熟知的存取命令检查或其他检查。检测模块110可检测存储器控制器11所产生的多个存取命令是否发生页错失,以便从所述多个存取命令中识别出至少一个页错失命令。计算模块120耦接检测模块110,以便接收检测模块110输出的页错失命令。
[0051] 一般而言,在进行存储器页面(memory page)读取或写入存储器页面的操作前,需要先判断欲进行存取操作的存储器页面是否处于打开状态。当存储器控制器11发送存取命令时,当欲进行存取操作的存储器页面是关闭的时,此存取命令便发生了“页错失”。当发生了“页错失”时,存储器控制器11会根据需要,发出辅助命令来先关闭已经处于打开状态的其他存储器页面,然后再开启本次存取操作对应的存储器页面。若是当前没有存储器页面处于打开状态,则存储器控制器11直接发出辅助命令开启本次存取操作对应的存储器页面。这样,所述存取命令才能对存储器页面进行存取操作。
[0052] 计算模块120可从所述多个存取命令中找出与页错失命令相关的先前冲突命令,其中所述先前冲突命令与所述页错失命令是互相冲突的两个命令。例如,先前冲突命令与页错失命令为具有相同库(bank)地址且具有不同页地址的两个命令。计算模块120可以计算所述页错失命令与所述先前冲突命令之间的距离(以下称为冲突命令间距)。计算模块120可依据所述冲突命令间距来分析页错失命令对存储器带宽利用的影响程度,以便评估存储器控制器11的性能。
[0053] 图1B是依照本发明的另一实施例所绘示的性能评估装置100B的电路方块示意图。在图1B所示实施例中,性能评估装置100B可以被配置在存储器控制器14中。性能评估装置
100B可以评估存储器控制器14的性能。存储器控制器14还包括命令处理电路15。中央处理单元13可以对存储器控制器14下达存取请求req,以便存取存储器12。命令处理电路15可依据接收到的存取请求req而产生对应的存取命令给存储器12,所述存取命令可以是读取命令或写入命令。亦即,存储器控制器14可以依据存取请求req来对存储器12进行存取操作。
图1B所述存储器12可以参照图1A的相关说明,故不再赘述。
[0054] 一般而言,命令处理电路15可以检查所述存取命令是否发生“页命中”和/或发生“页错失”。本实施例并不限制命令处理电路15检查所述存取命令的实施方式。举例来说,所述检查可以是熟知的存取命令检查或其他检查。
[0055] 性能评估装置100B包括检测模块110以及计算模块120。检测模块110可检测存储器控制器14所产生的多个存取命令是否发生页错失,以便从所述多个存取命令中识别出至少一个页错失命令。图1B所述检测模块110以及计算模块120可以参照图1A的相关说明来类推,故不再赘述。
[0056] 图2是依照本发明的一实施例的存储器控制器的性能评估方法的流程示意图。图2的相关说明可以适用于图1A和/或图1B所示性能评估装置。请参照图2,在步骤S200中,检测模块110将检测存储器控制器100的多个存取命令是否发生页错失。若检测模块110检测到所述多个存取命令未发生页错失(步骤S200的判断结果为“否”),则检测模块110再一次进行步骤S200。若检测模块110检测到所述多个存取命令发生页错失(步骤S200的判断结果为“是”),则进入步骤S210,亦即检测模块110将进一步从所述多个存取命令中识别出至少一个页错失命令,并输出给计算模块120。在步骤S220中,计算模块120可从所述多个存取命令中找出与页错失命令相关的先前冲突命令,以便计算页错失命令与先前冲突命令之间的间距(冲突命令间距)。在步骤S230中,计算模块120可依据冲突命令间距来评估存储器控制器100的性能。
[0057] 以下将通过窗口(window)的概念来进一步说明冲突命令间距与存储器带宽利用的关联性。图3是依照本发明的一实施例说明窗口深度的示意图。图3所示的横轴表示时间,且横轴左方表示最近的时间。图3所示命令cmd0、cmd1、…、cmdi表示存储器控制器100的存取命令,例如是读取命令或写入命令。图3所示命令CMD(0)与命令CMD(i)表示存取命令cmd0~cmdi中的两个命令。如图3所示,假设存取命令CMD(0)与先前发出的存取命令CMD(i)发生冲突,且存取命令CMD(0)与存取命令CMD(i)之间具有一段辅助命令执行期间T。存储器控制器可以在辅助命令执行期间T发出辅助命令,以排除存取命令CMD(0)与存取命令CMD(i)的冲突情形。所述辅助命令可以是预充电(pre-charge)命令PRE、启动(active)命令ACT和/或其他辅助命令。预充电命令PRE可用来关闭存储器页面,启动命令ACT则用来开启存储器页面。
[0058] 假设存取命令CMD(0)与存取命令CMD(i)之间设置有预充电命令PRE与启动命令ACT,其中存取命令CMD(0)与预充电命令PRE之间的额定时间间距为T1,预充电命令PRE与启动命令ACT之间的额定时间间距为T2,存取启动命令ACT与存取命令CMD(i)之间的额定时间间距为T3。若在辅助命令执行期间T(T=T1+T2+T3)内最多可排入连续W个不互相冲突的命令,则可将W定义为窗口深度,其中W个不互相冲突的命令所具有的时间间距为t。亦即,窗口深度W相关于辅助命令执行期间T。
[0059] 对一个存储器库(bank)而言,由于每次只能对其中的一个存储器页面进行存取,故当存储器控制器100欲对某个存储器库的不同页面分别发出存取命令时,需在不同页面之间进行切换,因而导致具有不同页面地址的两个存取命令发生冲突。发生冲突的两个存取命令之间的切换方式可包括:“读取命令切换到写入命令”、“写入命令切换到读取命令”、“读取命令切换到读取命令”、“写入命令切换到写入命令”等4种命令切换情况。因此,在选择/决定窗口深度时,将采用在前述4种命令切换情况中所分别计算的W值的最大者作为最终的窗口深度。
[0060] 如图3所示,若两个冲突命令之间的间距(冲突命令间距)大于或等于窗口深度W,表示冲突命令间距足够执行辅助命令,则存储器控制器100可以在所述冲突命令间距(辅助命令执行期间T)内插入辅助命令以排除命令冲突。因为存储器控制器100不需要额外花费时间来等待辅助命令的执行,因此存储器的带宽可以被有效利用。若两个冲突命令之间的间距(冲突命令间距)小于窗口深度W,表示冲突命令间距不足以执行辅助命令,则存储器控制器100需要额外花费时间来等待辅助命令的执行,因此存储器的带宽无法被有效利用。因此,计算模块120可以依据冲突命令间距T与窗口深度W来评估存储器控制器的性能。
[0061] 图4是依照本发明的另一实施例的存储器控制器400的电路方块示意图。图2的相关说明可以适用于图4所示实施例。如图4所示,存储器控制器400包括命令处理电路40、检测模块41以及计算模块42。图4所示存储器控制器400、命令处理电路40、检测模块41以及计算模块42可以参照图1B所示存储器控制器14、命令处理电路15、检测模块110以及计算模块120的相关说明来类推。
[0062] 命令处理电路40可将存储器控制器400接收到的存取请求req进行排序与解码,并转换为多个存取命令,所述多个存取命令可以是读取命令或写入命令。命令处理电路40可将所述多个存取命令输出至存储器芯片401,以便对存储器芯片401进行存取操作。依照设计需求,存储器芯片401可包括易失性存储器芯片和/或非易失性存储器芯片。所述易失性存储器芯片可包括SRAM芯片、DRAM芯片和/或其他芯片。所述非易失性存储器芯片可包括闪存芯片和/或其他芯片。在图4的实施例中,存储器芯片401可以是DRAM芯片。
[0063] 检测模块41可检测命令处理电路40所产生的多个存取命令是否发生页错失,以便从所述多个存取命令中识别出至少一个页错失命令411。计算模块42耦接命令处理电路40与检测模块41。计算模块42包括命令缓冲器421与运算电路422。命令缓冲器421可储存所述多个存取命令的一部分或全部。举例来说(但不限于此),命令缓冲器421的容量可由图3说明的窗口深度W来决定。运算电路422可接收检测模块41识别出的页错失命令411,并从命令缓冲器421中找出与页错失命令411相关的先前冲突命令4211,以便计算页错失命令411与先前冲突命令4211之间的间距(冲突命令间距)。计算模块42的运算电路422可以计算窗口深度W与所述冲突命令间距之间的差值。计算模块42可以依据此差值来计算离散冲突因子(discrete conflict factor)DCF,其中该离散冲突因子DCF可以被用来评估存储器控制器的性能。
[0064] 当运算电路422计算出冲突命令间距之后,运算电路422可再依据冲突命令间距与窗口深度W来进一步计算离散冲突因子DCF,以便藉由离散冲突因子DCF来评估存储器控制器400的性能。举例来说,所述离散冲突因子DCF=A/I,其中A为实数(做为观测统计结果的放大倍率),M为在统计期间中所述至少一个页错失命令的命令数量,Ni为在所述至少一个页错失命令中的第i个命令的冲突命令间距,而I为在统计期间中存储器控制器所接收的存取请求的数量。
[0065] 以下将通过图5来说明离散冲突因子的DCF的计算方式,图5是依照本发明的一实施例说明计算离散冲突因子DCF的示意图。图5所示的横轴表示时间,且横轴左方表示最近的时间。图5所示命令cmd0、cmd1、…、cmd9、…、cmd20为存储器控制器400发送至存储器芯片401的存取命令。如图5所示,假设窗口深度W=20且存取命令cmd0发生第i次页错失,并且假设存取命令cmd0与之前存储器控制器400发出的存取命令cmd9发生冲突,因此冲突命令间距Ni=9。运算电路422可计算此次(第i次)页错失所对应的离散冲突因子DCFi=W-Ni=20-9=11。把在统计期间中发生页错失的多个存取命令的离散冲突因子DCFi加总后,即为最终的离散冲突因子DCF。
[0066] 在图4的实施例中,存取请求req是先经由命令处理电路40进行重排序(reorder)与解码而转换为多个存取命令之后,运算电路422依据经重排序的存取命令来计算离散冲突因子DCF。在另一实施例中,运算电路422亦可依据存取请求req(未经解码的存取命令)来进行离散冲突因子DCF的运算。举例来说,运算电路422可依据读取请求(未经解码的读取命令)来进行读取命令离散冲突因子DCF1的运算,以及依据写入请求(未经解码的写入命令)来进行写入命令离散冲突因子DCF2的运算,再将读取命令离散冲突因子DCF1与写入命令离散冲突因子DCF2加总后获得最终的离散冲突因子DCF。
[0067] 此外,图4的运算电路422可以定时(或不定时)计算出在不同时间的多个离散冲突因子DCF。在一些实施例中,运算电路422可将这一系列的离散冲突因子DCF记录于数据库402内,以做为日后的设计参考,和/或作为系统效能的调整参考。在另一些实施例中,运算电路422亦可将实时的离散冲突因子DCF提供给中央处理单元403(或主机),以便让运行于中央处理单元403的程序可以实时地进行效能调整。
[0068] 以下将以存储器的读取操作为例进行说明。表1是说明在使用不同测试样本的情况下,存储器控制器400基于不同编码策略的仿真测试结果。在此,离散冲突因子DCF的计算是假设实数A=1000且窗口深度W=20。
[0069] 表1:存储器控制器的仿真测试结果
[0070]
[0071] 如表1所示,在测试样本A的仿真测试中,当存储器控制器400采用编码策略C进行仿真测试时,读取操作的页命中率为85.05%,写入操作的页命中率为82.68%,带宽利用率为68.71%,离散冲突因子DCF=129。当存储器控制器400采用编码策略D进行仿真测试时,读取操作的页命中率为94.88%,写入操作的页命中率为92.56%,带宽利用率为67.02%,离散冲突因子DCF=171。由表1的测试结果可发现编码策略C的读取操作的页命中率(85.05%)小于编码策略D的读取操作的页命中率(94.88%),但编码策略C的带宽利用率(68.71%)却大于编码策略D的带宽利用率(67.02%)。因此,表1的测试结果说明了测试样本A的页命中率无法真实反映出存储器控制器400的带宽利用状态。
[0072] 此外,由于离散冲突因子DCF越小表示存取命令发生冲突的程度较低,因此存储器的带宽利用率较高。由表1可知,针对测试样本A,编码策略C的离散冲突因子DCF(129)小于编码策略D的离散冲突因子DCF(171),且编码策略C的带宽利用率(68.71%)大于编码策略D的带宽利用率(67.02%)。因为离散冲突因子DCF可准确地反应带宽利用率的变化,故离散冲突因子DCF可更准确地评估存储器控制器400的性能。
[0073] 如表1所示,在测试样本B的仿真测试中,当存储器控制器400采用编码策略C进行仿真测试时,读取操作的页命中率为85.19%,写入操作的页命中率为82.09%,带宽利用率为64.26%,离散冲突因子DCF=234。当存储器控制器400采用编码策略D进行仿真测试时,读取操作的页命中率为94.65%,写入操作的页命中率为94.14%,带宽利用率为70.42%,离散冲突因子DCF=120。由表1的测试结果可发现,当编码策略C的离散冲突因子DCF(234)大于编码策略D的离散冲突因子DCF(120)时,编码策略C的带宽利用率(64.26%)小于编码策略D的带宽利用率(70.42%)。因此,在页命中率与带宽利用率呈现正相关的情况下,离散冲突因子DCF依然可准确地反应带宽利用率的变化。
[0074] 性能评估装置100A、检测模块110、计算模块120、测试单元130、存储器控制器14、命令处理电路15、性能评估装置100B、检测模块110、计算模块120、命令处理电路40、检测模块41、计算模块42和/或运算电路422的方块既可通过形成于集成电路(integrated circuit)上的逻辑电路(硬件(hardware))实现,也可使用中央处理器(Central Processing Unit,CPU)而通过软件来实现。在后者的情况下,性能评估装置100A、检测模块110、计算模块120、测试单元130、存储器控制器14、命令处理电路15、性能评估装置100B、检测模块110、计算模块120、命令处理电路40、检测模块41、计算模块42和/或运算电路422的相关功能可以被实现为软件(即程序)的编程代码(programming codes)。所述软件(即程序)可由计算机(或CPU)读取,且可以被记录/存放在只读存储器(Read Only Memory,ROM)、存储装置(称作“存储介质”)和/或随机存取器(Random Access Memory,RAM)。并且,通过计算机(或CPU)从所述存储介质中读取并执行所述程序,从而实现相关功能。作为所述存储介质,可使用“非瞬时性的计算机可读取介质(non-transitory computer readable medium)”,例如可使用带(tape)、碟(disk)、卡(card)、半导体存储器、可程序化设计的逻辑电路等。而且,所述程序也可经由任意传输介质(通信网络或广播电波等)而提供给所述计算机(或CPU)。所述通信网络例如是互联网(Internet)、有线通信(wired communication)、无线通信(wireless communication)或其它通信介质。
[0075] 在不同的应用情境中,性能评估装置100A、检测模块110、计算模块120、测试单元130、存储器控制器14、命令处理电路15、性能评估装置100B、检测模块110、计算模块120、命令处理电路40、检测模块41、计算模块42和/或运算电路422的相关功能可以利用一般的编程语言(programming languages,例如C或C++)、硬件描述语言(hardware description languages,例如Verilog HDL或VHDL)或其他合适的编程语言来实现为软件、固件或硬件。
对于硬件实现,一或多个控制器、微控制器、微处理器、专用集成电路(Application-specific integrated circuit,ASIC)、数字信号处理器(digital signal processor,DSP)、现场可编程门阵列(Field Programmable Gate Array,FPGA)和/或其他处理单元中的各种逻辑块、模块和电路可以被用于实现或执行本文实施例所述功能。另外,本发明的装置和方法可以通过硬件、固件和/或软件的组合来实现。
[0076] 综上所述,本发明诸实施例所述的存储器控制器可依据每一次页错失命令来计算离散冲突因子DCF,并以离散冲突因子DCF来评估存储器的带宽是否被有效利用。反观熟知技术,其以页命中率无法总是正确反映出存储器的带宽利用状态。因此,本发明诸实施例所述的性能评估方法可更准确地评估存储器控制器的性能。
[0077] 虽然本发明已以实施例公开如上,然其并非用于限定本发明,任何本领域普通技术人员,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当视权利要求书所界定者为准。

当前第1页 第1页 第2页 第3页
相关技术
装置性能相关技术
评估方法相关技术
余祖法发明人的其他相关专利技术