CN109686396A - 性能评估装置及性能评估方法 - Google Patents
性能评估装置及性能评估方法 Download PDFInfo
- Publication number
- CN109686396A CN109686396A CN201910080068.8A CN201910080068A CN109686396A CN 109686396 A CN109686396 A CN 109686396A CN 201910080068 A CN201910080068 A CN 201910080068A CN 109686396 A CN109686396 A CN 109686396A
- Authority
- CN
- China
- Prior art keywords
- order
- conflict
- page
- memory controller
- misses
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/10—Test algorithms, e.g. memory scan [MScan] algorithms; Test patterns, e.g. checkerboard patterns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0706—Error 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/0727—Error 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3034—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3409—Recording 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/3419—Recording 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/44—Indication or identification of errors, e.g. for repair
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/56—External testing equipment for static stores, e.g. automatic test equipment [ATE]; Interfaces therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/805—Real-time
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C2029/4402—Internal 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可以是动态随机存取存储器(Dynamic Random 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的性能。举例来说,所述离散冲突因子其中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.如权利要求2所述的性能评估方法,其中所述评估该存储器控制器的性能的步骤包括:
计算该窗口深度与该冲突命令间距的一差值;以及
依据该差值来计算一离散冲突因子,其中该离散冲突因子被用来评估该存储器控制器的性能。
4.如权利要求3所述的性能评估方法,其中所述计算该离散冲突因子的步骤包括:
计算其中DCF为离散冲突因子,A为实数,M为在一统计期间中所述至少一个页错失命令的命令数量,W为该窗口深度,Ni为在所述至少一个页错失命令中的第i个命令的该冲突命令间距,而I为在该统计期间中该存储器控制器所接收的存取请求的数量。
5.如权利要求3所述的性能评估方法,还包括:
将该离散冲突因子记录于一数据库。
6.如权利要求3所述的性能评估方法,还包括:
将该离散冲突因子提供给一中央处理单元,以利于运行于该中央处理单元的一程序进行一效能调整。
7.如权利要求1所述的性能评估方法,其中所述冲突的定义包括:该先前冲突命令与该页错失命令具有相同库地址,且该先前冲突命令与该页错失命令具有不同页地址。
8.一种性能评估装置,用于评估一存储器控制器的性能,该性能评估装置包括:
一检测模块,用于检测该存储器控制器的多个存取命令是否发生页错失,以从所述存取命令中识别出至少一个页错失命令;以及
一计算模块,耦接该检测模块,用于计算所述至少一个页错失命令与一先前冲突命令之间的一距离作为一冲突命令间距,以及依据该冲突命令间距来评估该存储器控制器的性能,其中该先前冲突命令与该页错失命令相冲突。
9.如权利要求8所述的性能评估装置,其中所述存取命令包括相互冲突的一第一命令与一第二命令,该第一命令与该第二命令之间具有一辅助命令执行期间以排除冲突,一窗口深度相关于该辅助命令执行期间,以及该计算模块依据该冲突命令间距与该窗口深度来评估该存储器控制器的性能。
10.如权利要求9所述的性能评估装置,其中该计算模块包括:
一命令缓冲器,用于储存所述存取命令的一部分或全部;
其中当该检测模块识别出所述至少一个页错失命令时,该计算模块从该命令缓冲器中找出与所述至少一个页错失命令相关的该先前冲突命令,以计算所述至少一个页错失命令与该先前冲突命令之间的该冲突命令间距。
11.如权利要求10所述的性能评估装置,其中所述计算模块计算该窗口深度与该冲突命令间距的一差值,以及所述计算模块依据该差值来计算一离散冲突因子,其中该离散冲突因子被用来评估该存储器控制器的性能。
12.如权利要求11所述的性能评估装置,其中所述计算模块计算其中DCF为离散冲突因子,A为实数,M为在一统计期间中所述至少一个页错失命令的命令数量,W为该窗口深度,Ni为在所述至少一个页错失命令中的第i个命令的该冲突命令间距,而I为在该统计期间中该存储器控制器所接收的存取请求的数量。
13.如权利要求11所述的性能评估装置,其中所述计算模块将该离散冲突因子记录于一数据库。
14.如权利要求11所述的性能评估装置,其中所述计算模块将该离散冲突因子提供给一中央处理单元,以利于运行于该中央处理单元的一程序进行一效能调整。
15.如权利要求8所述的性能评估装置,其中所述冲突的定义包括:该先前冲突命令与该页错失命令具有相同库地址,且该先前冲突命令与该页错失命令具有不同页地址。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810156857.0A CN108335719A (zh) | 2018-02-24 | 2018-02-24 | 性能评估装置及性能评估方法 |
CN2018101568570 | 2018-02-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109686396A true CN109686396A (zh) | 2019-04-26 |
CN109686396B CN109686396B (zh) | 2020-12-08 |
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 Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810156857.0A Pending CN108335719A (zh) | 2018-02-24 | 2018-02-24 | 性能评估装置及性能评估方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10754576B2 (zh) |
CN (2) | CN108335719A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114397876B (zh) * | 2022-01-24 | 2024-09-03 | 中国信息通信研究院 | 用于评估域控制器性能的方法及装置、电子设备、存储介质 |
Citations (9)
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 |
CN1669011A (zh) * | 2002-05-14 | 2005-09-14 | 微米技术有限公司 | 无序的动态随机存取存储器序列器 |
US6976122B1 (en) * | 2002-06-21 | 2005-12-13 | Advanced Micro Devices, Inc. | Dynamic idle counter threshold value for use in memory paging policy |
CN101465158A (zh) * | 2007-12-19 | 2009-06-24 | 富士通微电子株式会社 | 半导体存储器、存储器系统和存储器访问控制方法 |
US20100223431A1 (en) * | 2007-03-06 | 2010-09-02 | Kosuke Nishihara | Memory access control system, memory access control method, and program thereof |
US8913459B2 (en) * | 2011-03-31 | 2014-12-16 | Ps4 Luxco S.A.R.L. | Semiconductor device including plural chips stacked to each other |
CN105573931A (zh) * | 2015-12-05 | 2016-05-11 | 中国航空工业集团公司洛阳电光设备研究所 | 一种双口ram的访问方法及装置 |
CN106919520A (zh) * | 2015-12-28 | 2017-07-04 | 龙芯中科技术有限公司 | 访存命令调度方法、装置和系统 |
-
2018
- 2018-02-24 CN CN201810156857.0A patent/CN108335719A/zh active Pending
- 2018-03-23 US US15/933,378 patent/US10754576B2/en active Active
-
2019
- 2019-01-28 CN CN201910080068.8A patent/CN109686396B/zh active Active
Patent Citations (9)
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 |
CN1669011A (zh) * | 2002-05-14 | 2005-09-14 | 微米技术有限公司 | 无序的动态随机存取存储器序列器 |
US6976122B1 (en) * | 2002-06-21 | 2005-12-13 | Advanced Micro Devices, Inc. | Dynamic idle counter threshold value for use in memory paging policy |
US20100223431A1 (en) * | 2007-03-06 | 2010-09-02 | Kosuke Nishihara | Memory access control system, memory access control method, and program thereof |
CN101465158A (zh) * | 2007-12-19 | 2009-06-24 | 富士通微电子株式会社 | 半导体存储器、存储器系统和存储器访问控制方法 |
US8913459B2 (en) * | 2011-03-31 | 2014-12-16 | Ps4 Luxco S.A.R.L. | Semiconductor device including plural chips stacked to each other |
CN105573931A (zh) * | 2015-12-05 | 2016-05-11 | 中国航空工业集团公司洛阳电光设备研究所 | 一种双口ram的访问方法及装置 |
CN106919520A (zh) * | 2015-12-28 | 2017-07-04 | 龙芯中科技术有限公司 | 访存命令调度方法、装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
US10754576B2 (en) | 2020-08-25 |
CN108335719A (zh) | 2018-07-27 |
US20190265905A1 (en) | 2019-08-29 |
CN109686396B (zh) | 2020-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103999056B (zh) | 管理工作负载存储器分配的方法、设备和系统 | |
US7149857B2 (en) | Out of order DRAM sequencer | |
US8457943B2 (en) | System and method for simulating a multiprocessor system | |
WO2021103909A1 (zh) | 风险预测和风险预测模型的训练方法、装置及电子设备 | |
US20060112255A1 (en) | Method and apparatus for determining a dynamic random access memory page management implementation | |
CN102662868A (zh) | 用于处理器的动态组相联高速缓存装置及其访问方法 | |
CN101719105A (zh) | 一种多核系统中对内存访问的优化方法和系统 | |
US8954644B2 (en) | Apparatus and method for controlling memory | |
US20080140691A1 (en) | Method, Device and Computer Program Product for Optimizing File Placement in a Storage System | |
US11079954B2 (en) | Embedded reference counter and special data pattern auto-detect | |
US9378125B2 (en) | Semiconductor chip and method of controlling memory | |
CN101271435A (zh) | 一种访问外部存储器的方法 | |
US10157123B1 (en) | Methods and apparatus for a scheduler for memory access | |
CN117785292B (zh) | 多核处理器系统的缓存一致性的验证方法及验证装置 | |
CN109739700A (zh) | 一种接口测试方法和装置 | |
TW201447750A (zh) | 合併記憶體存取請求之技術 | |
CN109686396A (zh) | 性能评估装置及性能评估方法 | |
CN107301270A (zh) | Ddr存储系统访存延时的解析建模方法 | |
CN105487953B (zh) | 一种总线性能分析方法和装置 | |
US6751752B1 (en) | Checking events generated by a device | |
CN111091854A (zh) | 一种命令处理器与ddr读写访问电路 | |
CN112181870A (zh) | 内存页面管理方法、装置、设备及可读存储介质 | |
CN109599135B (zh) | Gpu帧缓冲区存储硬件、存储方法、存储系统和存储介质 | |
CN114091384A (zh) | 数据处理电路及人工智能芯片、数据处理方法和装置 | |
CN112148486A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: Room 301, 2537 Jinke Road, Zhangjiang High Tech Park, Pudong New Area, Shanghai 201203 Patentee after: Shanghai Zhaoxin Semiconductor Co.,Ltd. Address before: Room 301, 2537 Jinke Road, Zhangjiang hi tech park, Shanghai 201203 Patentee before: VIA ALLIANCE SEMICONDUCTOR Co.,Ltd. |
|
CP03 | Change of name, title or address |