CN108335719A - 性能评估装置及性能评估方法 - Google Patents

性能评估装置及性能评估方法 Download PDF

Info

Publication number
CN108335719A
CN108335719A CN201810156857.0A CN201810156857A CN108335719A CN 108335719 A CN108335719 A CN 108335719A CN 201810156857 A CN201810156857 A CN 201810156857A CN 108335719 A CN108335719 A CN 108335719A
Authority
CN
China
Prior art keywords
order
conflict
page
memory controller
performance
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201810156857.0A
Other languages
English (en)
Inventor
余祖法
金杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Zhaoxin Integrated Circuit Co Ltd
Original Assignee
Shanghai Zhaoxin Integrated Circuit Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Zhaoxin Integrated Circuit Co Ltd filed Critical Shanghai Zhaoxin Integrated Circuit Co Ltd
Priority to CN201810156857.0A priority Critical patent/CN108335719A/zh
Priority to US15/933,378 priority patent/US10754576B2/en
Publication of CN108335719A publication Critical patent/CN108335719A/zh
Priority to CN201910080068.8A priority patent/CN109686396B/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/10Test algorithms, e.g. memory scan [MScan] algorithms; Test patterns, e.g. checkerboard patterns 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/56External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C2029/4402Internal storage of test result, quality data, chip identification, repair information

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

一种性能评估装置及性能评估方法。所述性能评估方法包括:检测存储器控制器的多个存取命令是否发生页错失,以从存取命令中识别至少一个页错失命令;计算所述至少一个页错失命令与先前冲突命令之间的距离作为冲突命令间距,其中所述先前冲突命令与所述页错失命令相冲突;以及依据所述冲突命令间距来评估存储器控制器的性能。

Description

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

Claims (15)

1.一种存储器控制器的性能评估方法,包括:
检测该存储器控制器的多个存取命令是否发生页错失,以从这些存取命令中识别出至少一个页错失命令;
计算所述至少一个页错失命令与一先前冲突命令之间的一距离作为一冲突命令间距,其中该先前冲突命令与该页错失命令相冲突;以及
依据该冲突命令间距来评估该存储器控制器的性能。
2.如权利要求1所述的性能评估方法,其中这些存取命令包括相互冲突的一第一命令与一第二命令,该第一命令与该第二命令之间具有一辅助命令执行期间以排除冲突,所述性能评估方法还包括:
依据该辅助命令执行期间来决定一窗口深度;
其中所述评估该存储器控制器的性能的步骤,是依据该冲突命令间距与该窗口深度来评估该存储器控制器的性能。
3.如权利要求1所述的用户终端,其特征在于,
如权利要求2所述的性能评估方法,其中所述评估该存储器控制器的性能的步骤包括:
计算该窗口深度与该冲突命令间距的一差值;以及
依据该差值来计算一离散冲突因子,其中该离散冲突因子被用来评估该存储器控制器的性能。
4.如权利要求3所述的用户终端,其特征在于,
如权利要求3所述的性能评估方法,其中所述计算该离散冲突因子的步骤包括:
计算DCF=A/I,其中DCF为离散冲突因子,A为实数,M为在一统计期间中所述至少一个页错失命令的命令数量,W为该窗口深度,Ni为在所述至少一个页错失命令中的第i个命令的该冲突命令间距,而I为在该统计期间中该存储器控制器所接收的存取请求的数量。
5.如权利要求3所述的性能评估方法,还包括:
将该离散冲突因子记录于一数据库。
6.如权利要求3所述的性能评估方法,还包括:
将该离散冲突因子提供给一中央处理单元,以利于运行于该中央处理单元的一程序进行一效能调整。
7.如权利要求1所述的性能评估方法,其中所述冲突的定义包括:该先前冲突命令与该页错失命令具有相同库地址,且该先前冲突命令与该页错失命令具有不同页地址。
8.一种性能评估装置,用于评估一存储器控制器的性能,该性能评估装置包括:
一检测模块,用于检测该存储器控制器的多个存取命令是否发生页错失,以从这些存取命令中识别出至少一个页错失命令;以及
一计算模块,耦接该检测模块,用于计算所述至少一个页错失命令与一先前冲突命令之间的一距离作为一冲突命令间距,以及依据该冲突命令间距来评估该存储器控制器的性能,其中该先前冲突命令与该页错失命令相冲突。
9.如权利要求8所述的性能评估装置,其中这些存取命令包括相互冲突的一第一命令与一第二命令,该第一命令与该第二命令之间具有一辅助命令执行期间以排除冲突,一窗口深度相关于该辅助命令执行期间,以及该计算模块依据该冲突命令间距与该窗口深度来评估该存储器控制器的性能。
10.如权利要求9所述的性能评估装置,其中该计算模块包括:
一命令缓冲器,用于储存这些存取命令的一部分或全部;
其中当该检测模块识别出所述至少一个页错失命令时,该计算模块从该命令缓冲器中找出与所述至少一个页错失命令相关的该先前冲突命令,以计算所述至少一个页错失命令与该先前冲突命令之间的该冲突命令间距。
11.如权利要求10所述的性能评估装置,其中所述计算模块计算该窗口深度与该冲突命令间距的一差值,以及所述计算模块依据该差值来计算一离散冲突因子,其中该离散冲突因子被用来评估该存储器控制器的性能。
12.如权利要求11所述的性能评估装置,其中所述计算模块计算DCF=A/I,其中DCF为离散冲突因子,A为实数,M为在一统计期间中所述至少一个页错失命令的命令数量,W为该窗口深度,Ni为在所述至少一个页错失命令中的第i个命令的该冲突命令间距,而I为在该统计期间中该存储器控制器所接收的存取请求的数量。
13.如权利要求11所述的性能评估装置,其中所述计算模块将该离散冲突因子记录于一数据库。
14.如权利要求11所述的性能评估装置,其中所述计算模块将该离散冲突因子提供给一中央处理单元,以利于运行于该中央处理单元的一程序进行一效能调整。
15.如权利要求8所述的性能评估装置,其中所述冲突的定义包括:该先前冲突命令与该页错失命令具有相同库地址,且该先前冲突命令与该页错失命令具有不同页地址。
CN201810156857.0A 2018-02-24 2018-02-24 性能评估装置及性能评估方法 Pending CN108335719A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201810156857.0A CN108335719A (zh) 2018-02-24 2018-02-24 性能评估装置及性能评估方法
US15/933,378 US10754576B2 (en) 2018-02-24 2018-03-23 Performance evaluation apparatus and performance evaluation method
CN201910080068.8A CN109686396B (zh) 2018-02-24 2019-01-28 性能评估装置及性能评估方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810156857.0A CN108335719A (zh) 2018-02-24 2018-02-24 性能评估装置及性能评估方法

Publications (1)

Publication Number Publication Date
CN108335719A true CN108335719A (zh) 2018-07-27

Family

ID=62929863

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201810156857.0A Pending CN108335719A (zh) 2018-02-24 2018-02-24 性能评估装置及性能评估方法
CN201910080068.8A Active CN109686396B (zh) 2018-02-24 2019-01-28 性能评估装置及性能评估方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201910080068.8A Active CN109686396B (zh) 2018-02-24 2019-01-28 性能评估装置及性能评估方法

Country Status (2)

Country Link
US (1) US10754576B2 (zh)
CN (2) CN108335719A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114397876A (zh) * 2022-01-24 2022-04-26 中国信息通信研究院 用于评估域控制器性能的方法及装置、电子设备、存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4896260A (en) * 1970-12-28 1990-01-23 Hyatt Gilbert P Data processor having integrated circuit memory refresh
US6018747A (en) * 1997-11-26 2000-01-25 International Business Machines Corporation Method for generating and reconstructing in-place delta files
US7149857B2 (en) * 2002-05-14 2006-12-12 Micron Technology, Inc. Out of order DRAM sequencer
US6976122B1 (en) * 2002-06-21 2005-12-13 Advanced Micro Devices, Inc. Dynamic idle counter threshold value for use in memory paging policy
WO2008108129A1 (ja) * 2007-03-06 2008-09-12 Nec Corporation メモリアクセス制御システム、メモリアクセス制御方法およびそのプログラム
JP5228472B2 (ja) * 2007-12-19 2013-07-03 富士通セミコンダクター株式会社 半導体メモリおよびシステム
JP2012216652A (ja) * 2011-03-31 2012-11-08 Elpida Memory Inc 半導体装置
CN105573931B (zh) * 2015-12-05 2019-10-15 中国航空工业集团公司洛阳电光设备研究所 一种双口ram的访问方法及装置
CN106919520B (zh) * 2015-12-28 2019-11-05 龙芯中科技术有限公司 访存命令调度方法、装置和***

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114397876A (zh) * 2022-01-24 2022-04-26 中国信息通信研究院 用于评估域控制器性能的方法及装置、电子设备、存储介质

Also Published As

Publication number Publication date
US20190265905A1 (en) 2019-08-29
US10754576B2 (en) 2020-08-25
CN109686396B (zh) 2020-12-08
CN109686396A (zh) 2019-04-26

Similar Documents

Publication Publication Date Title
CN103999056B (zh) 管理工作负载存储器分配的方法、设备和***
US7698498B2 (en) Memory controller with bank sorting and scheduling
CN111316220B (zh) 计算机存储器的性能计数器
JP4866646B2 (ja) メモリーに送るコマンドの選択方法、メモリーコントローラー、コンピュータシステム
CN101326504B (zh) 存储器访问请求仲裁
WO2021103909A1 (zh) 风险预测和风险预测模型的训练方法、装置及电子设备
KR20160107233A (ko) 데이터 처리 시스템 및 다중 트랜잭션들을 처리하는 방법
US7020762B2 (en) Method and apparatus for determining a dynamic random access memory page management implementation
CN109656779A (zh) 内存监控方法、装置、终端和存储介质
US7908530B2 (en) Memory module and on-line build-in self-test method thereof for enhancing memory system reliability
CN101196889A (zh) 优化存储***中的文件放置的方法及装置
CN109669635B (zh) 用于固态存储主控芯片的命令lba重合检测方法及装置
TW201447750A (zh) 合併記憶體存取請求之技術
CN109739700A (zh) 一种接口测试方法和装置
CN110008986B (zh) 批量风险案件识别方法、装置及电子设备
CN108335719A (zh) 性能评估装置及性能评估方法
CN107590017A (zh) 一种电子设备的检测方法和装置
CN107301270A (zh) Ddr存储***访存延时的解析建模方法
US20160117123A1 (en) Device, method, and computer program for scheduling access requests to shared memory
US6751752B1 (en) Checking events generated by a device
CN112181870A (zh) 内存页面管理方法、装置、设备及可读存储介质
CN109599135B (zh) Gpu帧缓冲区存储硬件、存储方法、存储***和存储介质
CN111091854A (zh) 一种命令处理器与ddr读写访问电路
CN111552652A (zh) 基于人工智能芯片的数据处理方法、装置和存储介质
CN113470725B (zh) 一种动态随机存储器的测试方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20180727

WD01 Invention patent application deemed withdrawn after publication