CN103885892A - 存储器控制器 - Google Patents
存储器控制器 Download PDFInfo
- Publication number
- CN103885892A CN103885892A CN201310208522.6A CN201310208522A CN103885892A CN 103885892 A CN103885892 A CN 103885892A CN 201310208522 A CN201310208522 A CN 201310208522A CN 103885892 A CN103885892 A CN 103885892A
- Authority
- CN
- China
- Prior art keywords
- mentioned
- request
- access
- cache lines
- memory controller
- 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
Links
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
Abstract
本发明提供能够尽可能高速地进行地址解析的存储器控制器。根据本发明的一个实施方式,存储器控制器具备第1接口、第2接口、缓存部、翻译部、访问部、锁定部。上述第1接口接收锁定请求及指定逻辑地址的访问请求的输入。上述第2接口连接于非易失性存储器。上述缓存部缓存上述逻辑地址与上述非易失性存储器的物理地址的对应信息。上述翻译部通过参照上述缓存部,将上述访问请求所指定的逻辑地址翻译为上述物理地址。上述访问部对上述翻译后的物理地址所表示的位置进行与上述访问请求相应的访问。上述锁定部禁止上述缓存部所具备的缓存行的重填。
Description
相关申请
本申请享有以美国专利临时申请61/740274号(申请日:2012年12月20日)为基础申请的优先权。本申请通过参照该基础申请,包含基础申请的全部内容。
技术领域
本发明的实施方式涉及存储器控制器。
背景技术
控制NAND型的闪速存储器(以下称为NAND存储器)的存储器控制器,由内置的控制用的存储器控制器执行逻辑地址与物理地址的映射。以下,将表示逻辑地址与物理地址的对应关系的数据称为L2P(Logical ToPhysical,逻辑到物理)表。
L2P表存储于分配给NAND存储器自身的一部分的系统数据区域。在存储器控制器所具备的RAM上保持L2P表。
发明内容
本发明的一个实施方式的目的在于提供能够尽可能高速地进行地址解析的存储器控制器。
根据本发明的一个实施方式,存储器控制器具备第1接口、第2接口、缓存部、翻译部、访问部、锁定部。上述第1接口接收锁定请求及指定逻辑地址的访问请求的输入。上述第2接口连接于非易失性存储器。上述缓存部缓存上述逻辑地址与上述非易失性存储器的物理地址的对应信息。上述翻译部通过参照上述缓存部,将上述访问请求所指定的逻辑地址翻译为上述物理地址。上述访问部对上述翻译后的物理地址所表示的位置进行与上述访问请求相应的访问。上述锁定部禁止上述缓存部所具备的缓存行的重填。
附图说明
图1是表示第1实施方式的存储器控制器的结构的图。
图2是说明逻辑地址与物理地址的对应关系的图。
图3是说明缓存行的锁定请求、解锁请求及访问请求的一例的图。
图4是说明由地址解析部进行的缓存行的操作例的图。
图5是说明接受访问请求时的地址解析部的工作的流程图。
图6是说明第1选择处理的流程图。
图7是说明第2选择处理的流程图。
图8是说明替代缓存行编号而指定区域编号的请求的一例的图。
图9是说明第2实施方式的存储器控制器的结构的图。
图10是说明访问模式的例子的图。
图11是说明每个区域的重填数的图。
图12是说明由锁定判定部进行的工作的流程图。
图13是说明由锁定判定部进行的另外的工作的流程图。
符号说明
100存储器控制器,110主机接口,120地址解析部,121L2P表缓存,122行锁定部,130用户数据访问部,140存储器接口,200主机,300NAND存储器,400存储器控制器,410主机接口,420地址解析部,422行锁定部,423访问模式分析部,424锁定判定部。
具体实施方式
在不具有大容量的RAM的存储器控制器中,将L2P表细分化为适合的大小的条目,并且通过仅将必要的条目读出到RAM上,来实现映射。L2P表的各个条目保存连续的特定逻辑地址范围的映射信息。RAM中的存储条目的区域可以采用缓存构造。由此,在逻辑地址空间中访问模式具有局部性的情况下,能够削减从NAND存储器读出L2P表的条目(以下称为表条目)的次数。
使命中率提高的又一个访问模式是按照顺序反复访问几个逻辑地址的情况。但是,这仅限于在访问的反复模式循环一周期间所参照的表条目的数量(以下称为反复间隔)比缓存行数少的情况。在反复间隔比缓存行数多的情况下,在反复模式循环一周并返回时,由于之前的表条目已经从缓存被逐出,所以需要再次从NAND存储器读出。这是与在执行代码长度大的程序循环时在CPU缓存上发生的抖动(Thrashing)类似的现象。
作为有可能发生这样的抖动的例子,举出主机使用具有日记(Journaling)功能的文件系统的情况。具备日记的文件系统在向存储器写入用户数据时,将用户数据和记述了变更内容的变更日志(log)一起以事务为单位进行记录。为了应对存储器的突发的不良状况,将变更日志记录在与用户数据分离的位置。用户数据的变更和与之对应的变更日志必须成对记录在存储器。因此,对存储用户数据的区域的访问和对存储变更日志的区域的访问交替地发生。
存储变更日志的区域通常被确保为环形缓冲器。每次发生事务时,在该缓冲器的末尾增加新的变更日志。因此,若仅着眼于变更日志,则可视为发生了顺序访问。但是,由于在变更日志的记录之间加入了用户数据的写入,所以不是完全的顺序访问,实现上述的反复访问。在用户数据的写入期间所需的表条目的数量比缓存行数少的情况下,前次的变更日志的记录时所缓存的表条目在接着写入变更日志时还残留在缓存上的可能性高。在该情况下,由于曾经读出的环形缓冲器用的表条目在之后的变更日志写入时还可被参照,所以缓存的命中率提高。反之,在用户数据的写入期间所需的表条目的数量比缓存行数多的情况下,在变更日志的记录时环形缓冲器用的表条目会从缓存上被逐出。在该情况下,每次记录变更日志时,需要从NAND存储器读出环形缓冲器用的表条目。从而,会发生上述的抖动,缓存的命中率降低。
为了防止暂时存储L2P表的缓存上的抖动的发生,本发明的实施方式的存储器控制器具有锁定缓存行的功能。根据本发明的实施方式,锁定了的缓存行上的表条目不会从缓存被逐出,直到解除锁定为止。根据该功能,在反复间隔比缓存行数多的情况下,可产生使缓存的命中率提高的效果。在存在变更日志用的环形缓冲器的情况下,通过锁定环形缓冲器中的与表示当前的写指针的逻辑地址对应的表条目,有可能能够提高缓存的命中率。
以下参照附图,详细说明实施方式所涉及的存储器控制器。另外,本发明并不由这些实施方式所限定。
(第1实施方式)
图1是表示第1实施方式的存储器控制器的结构的图。如图所示,存储器控制器100与主机200及NAND存储器300连接。存储器控制器100根据来自主机200的读出请求或写入请求,执行主机200与NAND存储器300之间的数据传送。以下,也将读出请求及写入请求总称为访问请求。访问请求包含访问目标的逻辑地址的指定。存储器控制器100计算与所指定的逻辑地址对应的物理地址。然后,存储器控制器100对NAND存储器300中的上述物理地址所表示的位置执行所请求的访问。
存储器控制器100具备主机接口(第1接口)110、地址解析部(翻译部)120、用户数据访问部(访问部)130及存储器接口(第2接口)140。
主机接口110是用于与主机200进行通信的接口。主机接口110从主机200除了接收访问请求之外,还能够接收锁定请求及解锁请求。存储器接口140是用于与NAND存储器300进行通信的接口。
用户数据访问部130经由存储器接口140从NAND存储器300读出从主机200请求读出的数据。另外,用户数据访问部130经由存储器接口140向NAND存储器300写入从主机200请求写入的数据。用户数据访问部130从地址解析部120接收访问目标的物理地址,从主机接口110接收表示来自主机200的请求的种类的ID。
地址解析部120将主机200使用访问请求指定的逻辑地址翻译(地址解析)为物理地址。这里,地址解析部120为了高速地执行地址解析,具有L2P表缓存(缓存部)121。
L2P表缓存121所具有的各个缓存行通过缓存行编号进行标识。L2P表缓存121的行大小等于表条目的大小。一个表条目所覆盖的逻辑地址的范围预先确定。各个表条目由包括该范围内的各逻辑地址和与该逻辑地址对应的物理地址的键-值(key-value)对的集合构成。另外,将一个表条目所覆盖的逻辑地址的范围称为区域。
图2是说明逻辑地址与物理地址的对应关系的图。在本图中,一个表条目覆盖连续的16个逻辑地址。并且,一个表条目按每个逻辑地址保存对应的物理地址。这里,例如,逻辑地址“100”对应于物理地址“1034”,逻辑地址“101”对应于物理地址“1082”。逻辑地址“103”与哪一物理地址都不对应,这意味着在该逻辑地址未存储用户数据。
地址解析部120参照L2P表缓存121计算与逻辑地址对应的物理地址,将计算出的物理地址传送到用户数据访问部130。
L2P表的主体(对应信息)存储于NAND存储器300。地址解析部120能够将存储于NAND存储器300的表条目经由存储器接口140读出到L2P表缓存121的缓存行。另外,地址解析部120将缓存于L2P表缓存121的表条目回写到NAND存储器300。另外,以下,将向L2P表缓存121的缓存行读出表条目的工作称为重填。在读出目标的缓存行上的表条目为废弃(dirty)的情况下,在重填工作中,优先进行将成为废弃的表条目逐出(回写)到NAND存储器300的操作。
这里,地址解析部120具备行锁定部122。地址解析部120从主机200,经由主机接口110接收L2P表缓存121的锁定请求及解锁请求。锁定请求是用于锁定缓存行的请求。解锁请求是用于解锁缓存行的请求。行锁定部122根据来自主机200的请求,对缓存行进行锁定或解锁。这里,所谓锁定缓存行是指,除接收特定的请求(后述的锁定标志被设定为有效的访问请求)的情况之外,禁止从缓存行的逐出。从而,所谓锁定缓存行等于禁止该缓存行的重填。另外,所谓解锁缓存行是指解除逐出的禁止。若缓存行被解锁,则可以进行该缓存行的重填。另外,行锁定部122也可以同时锁定多个缓存行。
图3是说明缓存行的锁定请求、解锁请求及访问请求的一例的图。锁定请求及解锁请求具有缓存行编号作为参数。另外,访问请求除了访问目标(读出源或写入目标)的逻辑地址及访问长度(读出长度或写入长度),还具有锁定标志及缓存行编号作为参数。另外,图3的请求仅表示出必要最小限度的字段。锁定请求、解锁请求、读出请求或写入请求根据主机接口110的构成也有可能包含其他参数。
锁定请求及解锁请求所具备的缓存行编号指定成为锁定或解锁的对象的缓存行。访问请求所具备的锁定标志表示是否将由该命令访问的区域用的表条目锁定在L2P表缓存121上。另外,访问请求所具备的缓存行编号在锁定标志有效的情况下,指定读出到哪个缓存行上。但是,在访问请求中可以指定的缓存行编号限于已经锁定的行。
图4是说明由地址解析部120进行的缓存行的操作例的图。地址解析部120在接收到锁定标志为无效(这里是指锁定标志设定为“0”)的访问请求的情况下,将访问目标的区域用的L2P表条目读出到未锁定的缓存行的任意一个。地址解析部120在接收到锁定标志为有效(这里是指锁定标志设定为“1”)的访问请求的情况下,读出到由缓存行编号指定的缓存行。锁定标志为有效的访问请求不发生向未锁定的缓存行上的读出。另外,锁定标志为无效的访问请求不发生已锁定的缓存行的改写。
另外,主机200、存储器控制器100及NAND存储器300的芯片构成没有特别限定。存储器控制器100可以由与主机200独立的芯片构成。另外,存储器控制器100也可以通过由主机200所具备的处理器执行预定的程序来实现。另外,也可以采用仅在主机200所具备的处理器上实现地址解析部120并且将除此以外的构成要素包含在与主机200独立的芯片的构成。另外,除了NAND存储器300之外,也可以采用其他的非易失性的存储器装置。
接着,说明第1实施方式的存储器控制器100的工作。
在地址解析部120接收到锁定请求时,行锁定部122锁定由所接收的锁定请求指定的编号的缓存行。另外,在地址解析部120接收到解锁请求时,行锁定部122解锁由所接收的解锁请求指定的编号的缓存行。
图5是说明接收访问请求时的地址解析部120的工作的流程图。地址解析部120若接收到访问请求,则判定所接收的访问请求的锁定标志是否有效(步骤S1)。在锁定标志为有效的情况下(步骤S1,是),地址解析部120执行从已锁定的缓存行选择表条目的处理(第1选择处理)(步骤S2)。在锁定标志为无效的情况下(步骤S1,否),地址解析部120执行从未锁定的缓存行选择表条目的处理(第2选择处理)(步骤S3)。在步骤S2或步骤S3的处理后,地址解析部120使用所选择的表条目,计算访问目标的物理地址(步骤S4),结束工作。
图6是说明第1选择处理的流程图。地址解析部120判定访问对象的区域所涉及的表条目(对象条目)是否存在于由访问请求指定的缓存行(指定行)(步骤S11)。在对象条目不存在于指定行的情况下(步骤S11,否),地址解析部120判定存在于指定行的表条目是否为废弃(步骤S12)。在存在于指定行的表条目为废弃的情况下(步骤S12,是),地址解析部120将存在于指定行的表条目回写到NAND存储器300(步骤S13),然后,从NAND存储器300向指定行读出对象条目(步骤S14)。在存在于指定行的表条目不为废弃的情况下(步骤S12,否),地址解析部120跳过步骤S13的处理,执行步骤S14的处理。在步骤S14的处理后,地址解析部120选择存在于指定行的表条目(步骤S15),结束锁定区域用表条目选择处理。在对象条目存在于指定行的情况下(步骤S11,是),地址解析部120执行步骤S15的处理。
图7是说明第2选择处理的流程图。地址解析部120判定对象条目是否存在于L2P表缓存121的、也包含锁定了的缓存行的某一缓存行(步骤S21)。在不存在对象条目的情况下(步骤S21,否),地址解析部120从未锁定的缓存行中选择重填目标的缓存行(步骤S22)。地址解析部120判定存在于重填目标的缓存行的表条目是否为废弃(步骤S23)。在存在于重填目标的缓存行的表条目为废弃的情况下(步骤S23,是),地址解析部120将存在于重填目标的缓存行的表条目回写到NAND存储器300(步骤S24),然后,从NAND存储器300向重填目标的缓存行读出对象条目(步骤S25)。在存在于重填目标的缓存行的表条目不为废弃的情况下(步骤S23,否),地址解析部120跳过步骤S24的处理,执行步骤S25的处理。在步骤S25的处理后或对象条目存在于L2P表缓存121的某一缓存行的情况下(步骤S21,是),地址解析部120选择存在于L2P表缓存121的或通过步骤S25的处理读出的对象条目(步骤S26)。然后,地址解析部120结束锁定区域用表条目选择处理。
另外,在以上的例子中,说明了在锁定请求、解锁请求及访问请求中,主机200明示地指定缓存行编号的情况。主机200通过使用将锁定标志设为有效的访问请求,对锁定了的缓存行不解除锁定而能够进行所存储的表条目的重填。由此,主机200可以对锁定了的缓存行自由度高地且如便签式存储器那样进行使用。
另外,存储器控制器100也可以如图8所示的例子那样构成为可以接收取代缓存行编号而指定了区域编号的请求。即,行锁定部122在接收到锁定请求的情况下,用任意的方法选择未锁定的一个缓存行,向所选择的缓存行读出并锁定对象条目。行锁定部122在接收到解锁请求的情况下,将存在对象条目的缓存行解锁。另一方面,访问请求都不具备锁定标志及缓存行编号。地址解析部120在访问目标的逻辑地址所属的区域与锁定请求所指定的某一区域相符的情况下,参照存在于该区域用的锁定了的缓存行的表条目。地址解析部120在访问目标的逻辑地址所属的区域与锁定请求所指定的任一区域都不相符的情况下,使用未锁定的缓存行执行通常的缓存工作。通过采用图8所示的请求,主机200不必识别哪个缓存行被锁定,因此能够减轻主机的负担。但是,为了重填锁定了的缓存行,主机200需要对该缓存行解锁。
另外,若锁定的缓存行数极度增加,则由于能够自由使用的缓存条目会不足,所以锁定标志为无效的命令的处理速度有可能降低。因此,也可以对可以同时锁定的缓存行数设定上限。
如上所述,根据第1实施方式,存储器控制器100根据来自主机200的请求,对L2P表缓存121的缓存行个别地进行锁定或者解锁。由此,主机200通过锁定缓存了访问具有周期性且访问间隔比缓存行数大的区域的缓存行,可以防止抖动的发生。即,存储器控制器100可以尽可能高速地进行地址解析。另外,在主机200具有日记功能的情况下,主机200通过锁定环形缓冲器上的与当前的写指针的位置相当的表条目,可以防止抖动的发生。
(第2实施方式)
根据第1实施方式,存储器控制器100根据来自主机200的请求,执行缓存行的锁定及解锁。从而,主机200需要执行锁定了的缓存行内的表条目的管理。
相对于此,在第2实施方式中,存储器控制器判断锁定的对象及定时。即,存储器控制器不需要来自主机200的请求便能够执行缓存行的锁定及解锁。根据第2实施方式,可越过主机200地执行缓存行的锁定及解锁。与主机200需要明示地控制缓存行的锁定及解锁的第1实施方式相比,主机200的负担减轻。
图9是说明第2实施方式的存储器控制器的结构的图。这里对于与第1实施方式同样的构成要素标注同一名称及符号,并省略重复的说明。存储器控制器400与主机200及NAND存储器300连接。
存储器控制器400具备主机接口410、地址解析部420、用户数据访问部130及存储器接口140。
主机接口410是用于与主机200进行通信的接口。主机接口410也可以是无法从主机200接收图3或图8所示的请求的接口。
地址解析部420具备L2P表缓存121、行锁定部422、访问模式分析部(访问模式记录部)423及锁定判定部(锁定部)424。
访问模式分析部423为了判断锁定哪个表条目,分析并存储从主机200对每个区域的访问的模式(访问模式)。具体地,例如,访问模式分析部423逐个区域计算并存储对来自主机200的访问的重填数。某区域的某瞬间的重填数等于从倒数第2次访问该区域到最后访问为止之间在L2P表缓存121发生的重填的次数。
图10是说明访问模式的例子的图。图11是说明在缓存行数为4的情况下执行图10所示的访问模式的访问时的每区域的重填数的图。假定在每个缓存行都为空的状态下按区域0、1、2、0、3、3、2、1的顺序执行访问。例如在第1次访问区域0到第2次访问为止之间,访问区域1及区域2。区域1及区域2的表条目都不存在于缓存行上,分别发生对缓存行的重填工作,因此第2次访问后的区域0的重填数为2。同样,在区域1的第1次访问到第2次访问之间,访问区域0、区域2及区域3。由于刚刚访问区域0,所以在缓存行上存在区域0的表条目。从而,重填工作仅在对区域2及区域3的访问时发生,第2次访问后的区域1的重填数为2。同样,区域2的重填数为1,区域3的重填数为0。
重填数成为测定对对应的区域的局部性的强度的指标。局部性的强度根据重填数如下判定。
(1)满足(重填数)<(缓存行数)的关系的区域判定为局部性“强”的区域。局部性“强”的区域在下次访问时,该区域的表条目残留在缓存(缓存命中)。访问间隔比缓存行数小的区域相当于局部性“强”的区域。
(2)满足(缓存行数)≤(重填数)<(重填数阈值)的关系的区域判定为局部性“中”的区域。局部性“中”的区域即使访问具有周期性,也由于访问间隔比缓存行数大,所以在下次访问时,该区域的表条目不会残留在缓存(缓存未命中)。另外,局部性“中”的区域由于重填数比重填数阈值小,所以以比后述的局部性“弱”的区域小的访问间隔被访问。
(3)满足(重填数阈值)≤(重填数)的关系的区域判定为局部性“弱”的区域。局部性“弱”的区域即使访问具有周期性,也由于访问间隔比重填数阈值大,所以在下次访问时,该区域的表条目不会残留在缓存(缓存未命中)。
存储器控制器400将局部性“中”的区域所涉及的缓存行设为锁定的对象。这是由于,局部性“强”的区域所涉及的缓存行由于即使不被锁定也将缓存命中,所以不被设为锁定的对象。另外,局部性“弱”的区域所涉及的缓存行由于被访问的频度低,所以不被设为锁定的对象。局部性“弱”的区域所涉及的缓存行若被锁定,则由其他区域可以使用的缓存行减少,结果,存储器全体的缓存命中率将降低。
锁定判定部424在发生重填时,根据所重填的表条目的区域是否满足(2)所示的关系,判定是否锁定该区域重填了的缓存行。判定用的重填数阈值的存储位置没有特别限定。判定用的重填数阈值例如预先设定。锁定判定部424将是否锁定缓存行的判定结果传送至行锁定部422。行锁定部422根据传送来的判定结果,锁定缓存行。另外,以下,将缓存行的锁定也表达为区域的锁定。另外,将缓存行的解锁也表达为区域的解锁。
图12是说明锁定判定部424的工作的流程图。图12的工作在每次发生重填时,将通过重填从NAND存储器300读出了表条目的区域作为对象(对象区域)而执行。
锁定判定部424判定对象区域是否满足局部性“中”的判定条件、即(缓存行数)≤(重填数)<(重填数阈值)的关系(步骤S31)。在对象区域满足局部性“中”的判定条件的情况下(步骤S31,是),锁定判定部424判定对象区域是否已经被锁定(步骤S32)。
在对象区域已经被锁定的情况下(步骤S32,是),锁定判定部424结束与对象区域相关的工作。在对象区域未被锁定的情况下(步骤S32,否),锁定判定部424判定已锁定的区域数是否在锁定数阈值以上(步骤S33)。锁定数阈值的存储位置没有特别限定。另外,锁定数阈值例如预先设定。
在已锁定的区域数不在锁定数阈值以上的情况下(步骤S33,否),锁定判定部424使行锁定部422锁定读出了与对象区域对应的表条目的缓存行(步骤S34)。
在已锁定的区域数在锁定数阈值以上的情况下(步骤S33,是),锁定判定部424判定已锁定的区域的重填数之中的最小值是否比对象区域的重填数小(步骤S35)。在已锁定的区域的重填数之中的最小值不比对象区域的重填数小的情况下(步骤S35,否),锁定判定部424结束与对象区域相关的工作。在已锁定的区域的重填数之中的最小值比对象区域的重填数小的情况下(步骤S35,是),锁定判定部424使行锁定部422将已锁定的区域之中的重填数最小的区域解锁(步骤S36),并执行步骤S34的处理。
在对象区域不满足局部性“中”的判定条件的情况下(步骤S31,否),锁定判定部424判定对象区域是否已经被锁定(步骤S37)。在对象区域已经被锁定的情况下(步骤S37,是),锁定判定部424使行锁定部422将对象区域解锁(步骤S38),并结束与对象区域相关的工作。在对象区域未被锁定的情况下(步骤S37,否),锁定判定部424跳过步骤S38的处理,结束与对象区域相关的工作。
图13是说明由锁定判定部424进行的另外的工作的流程图。图13所示的工作与图12所示的工作并行执行。锁定判定部424对已锁定的全部区域执行步骤S41~步骤S45的循环处理。另外,锁定判定部424在每次发生重填时执行图13中说明的工作。
锁定判定部424着眼于已锁定的区域之中的一个,开始循环处理。锁定判定部424判定所着眼的区域被锁定后的经过时间是否在时间阈值以上(步骤S42)。
另外,所谓经过时间,是指在锁定后发生的重填数。附带说一下,访问模式分析部423所存储的重填数是最新的2次访问之间的重填数。锁定判定部424用于步骤S42的处理的经过时间是进行最新的访问后的重填数。时间阈值的存储位置没有特别限定。另外,时间阈值例如预先设定。另外,作为时间阈值,可以使用重填数阈值。
在锁定后的经过时间在时间阈值以上的情况下(步骤S42,是),锁定判定部424将所着眼的区域解锁(步骤S43)。在锁定后的经过时间不在时间阈值以上的情况下(步骤S42,否),锁定判定部424将与所着眼的区域相关的经过时间加1(步骤S44)。步骤S43或步骤S44的处理后,锁定判定部424着眼于其他区域,执行下一循环处理。
通过图13的工作,一旦区域被锁定后,在由于访问模式的变动而长时间未访问该区域的情况下,能够将该区域解锁。即,能够防止访问频度降低了的区域被长时间锁定而占用缓存行。另一方面,在访问频度高的区域访问频度暂时地降低而被解锁且该区域用的表条目从缓存行被逐出的情况下,也可在访问频度恢复而接下来访问该区域时进行重填,通过图12的工作再次被锁定。
另外,在以上的说明中,说明了锁定判定部424通过在已锁定的区域数在锁定数阈值以上时将已锁定的区域解锁而锁定新区域的情况。在已锁定的区域数在锁定数阈值以上的情况下,锁定判定部424也可以不进行对象区域的锁定。
另外,访问模式分析部423也可以将重填数的平均值(移动平均值)或最大值(临近最大值)作为访问模式进行存储,锁定判定部424对访问模式分析部423所存储的值与重填数阈值进行比较。另外,访问模式分析部423也可以存储之前的重填数与当前的重填数的加权平均(加权平均值)。通过使用移动平均值、临近最大值、加权平均值,能够减轻由访问间隔的变动导致的重填数的急剧变化的影响。例如,访问模式分析部423也可以使用下式更新对每个区域存储的重填数。这里,W是满足0≤W≤1的预先设定的权重系数。
(更新后的重填数)=(更新前的重填数)*W+(当前的重填数)*(1-W)
另外,说明了锁定判定部424使用重填数作为经过时间而确定解锁的定时的情况。锁定判定部424也可以具备计数器等计时单元,根据计时单元的输出确定解锁的定时。
另外,访问模式分析部423也可以基于访问之间的重填数的过去值计算访问周期并记录。在该情况下,锁定判定部424也可以将各区域按访问周期从小到大的顺序分为3类,将按访问周期从小到大分为第2类的区域作为锁定的对象。
如上所述,根据第2实施方式,存储器控制器400基于主机200的访问模式,判断锁定的对象缓存行和锁定的定时。由此,存储器控制器400可以尽可能高速地进行地址解析。
另外,由于存储器控制器400锁定满足(缓存行数)≤(重填数)<(重填数阈值)的关系的区域,所以在设定了与访问模式相应的适合重填数阈值的情况下,能够降低抖动的发生。
虽然说明了本发明的几个实施方式,但是这些实施方式是作为例子而提示的,并非要限定发明的范围。这些新实施方式可以通过其他各种形式实施,在不脱离发明的主旨的范围,能够进行各种省略、置换、变更。这些实施方式和/或其变形包含于发明的范围和/或主旨,并且也包含于权利要求所记载的发明及其均等的范围。
Claims (18)
1.一种存储器控制器,其特征在于,具备:
第1接口,其接收锁定请求及指定逻辑地址的访问请求的输入;
第2接口,其连接于非易失性存储器;
缓存部,其缓存上述逻辑地址与上述非易失性存储器的物理地址的对应信息;
翻译部,其通过参照上述缓存部,将上述访问请求所指定的逻辑地址翻译为上述物理地址;
访问部,其对上述翻译后的物理地址所表示的位置进行与上述访问请求相应的访问;以及
锁定部,其禁止上述缓存部所具备的缓存行的重填。
2.权利请求1所述的存储器控制器,其特征在于,
上述第1接口部接收解锁请求的输入,
上述锁定部根据上述解锁请求,解除上述缓存行的重填的禁止。
3.权利请求2所述的存储器控制器,其特征在于,
上述锁定请求及上述解锁请求包含缓存行的指定。
4.权利请求3所述的存储器控制器,其特征在于,
上述访问请求包含标志及缓存行的指定,
上述锁定部,在由上述访问请求指定的缓存行的重填被禁止的情况下,禁止由上述标志为无效的访问请求引起的重填,许可由上述标志为有效的访问请求引起的重填。
5.权利请求2所述的存储器控制器,其特征在于,
上述锁定请求及上述解锁请求包含逻辑地址的范围的指定,
上述锁定部,
禁止缓存有与上述锁定请求所指定的范围对应的条目的缓存行的重填;
解除与上述解锁请求所指定的范围对应的缓存行的重填的禁止。
6.权利请求1所述的存储器控制器,其特征在于,
上述非易失性存储器是NAND型的闪速存储器。
7.一种存储器控制器,其特征在于,
第1接口,其接收指定逻辑地址的访问请求的输入;
第2接口,其连接于非易失性存储器;
缓存部,其缓存上述逻辑地址与上述非易失性存储器的物理地址的对应信息;
翻译部,其通过参照上述缓存部,将上述访问请求所指定的逻辑地址翻译为上述物理地址;
访问部,其对与上述翻译部计算出的物理地址相应的上述非易失性存储器的位置进行与上述访问请求相应的访问;
访问模式记录部,其记录对上述非易失性存储器的访问模式;以及
锁定部,其根据由上述访问模式记录部进行的记录,禁止上述缓存部所具备的缓存行的重填。
8.权利请求7所述的存储器控制器,其特征在于,
上述锁定部根据上述访问模式记录部所记录的访问模式,解除重填的禁止。
9.权利请求8所述的存储器控制器,其特征在于,
上述锁定部,在禁止了重填的缓存行数超过预先确定的行数阈值的情况下,根据上述访问模式记录部所记录的访问模式,从禁止了重填的缓存行之中选择缓存行,解除上述所选择的缓存行的重填的禁止。
10.权利请求7所述的存储器控制器,其特征在于,
上述记录部所记录的访问模式是缓存行单位的对应信息所对应的每个逻辑地址空间的访问之间的重填数。
11.权利请求10所述的存储器控制器,其特征在于,
上述锁定部,禁止上述记录部所记录的重填数比上述缓存部所具备的缓存行数大而比预先确定的重填数阈值小的缓存行的重填。
12.权利请求11所述的存储器控制器,其特征在于,
上述锁定部解除禁止了重填的缓存行之中未被访问且经过了预定时间的缓存行的重填的禁止。
13.权利请求8所述的存储器控制器,其特征在于,
上述记录部所记录的访问模式是缓存行单位的对应信息所对应的每个逻辑地址空间的访问之间的重填数。
14.权利请求13所述的存储器控制器,其特征在于,
上述锁定部,
禁止上述记录部所记录的重填数比上述缓存部所具备的缓存行数大且比预先确定的重填数阈值小的缓存行的重填,
解除上述记录部所记录的重填数比上述缓存部所具备的缓存行数小或比上述预先确定的重填数阈值大的缓存行的重填的禁止。
15.权利请求9所述的存储器控制器,其特征在于,
上述记录部所记录的访问模式是缓存行单位的对应信息所对应的每个逻辑地址空间的访问之间的重填数。
16.权利请求15所述的存储器控制器,其特征在于,
上述锁定部,
禁止上述记录部所记录的重填数比上述缓存部所具备的缓存行数大且比预先确定的重填数阈值小的缓存行的重填,
在禁止了重填的缓存行数超过了预先确定的行数阈值的情况下,解除禁止了重填的缓存行之中上述记录部所记录的重填数最小的缓存行的重填的禁止。
17.权利请求7所述的存储器控制器,其特征在于,
上述记录部所记录的访问模式是缓存行单位的对应信息所对应的每个逻辑地址空间的访问之间的重填数的移动平均值、临近最大值或加权平均值。
18.权利请求7所述的存储器控制器,其特征在于,
上述非易失性存储器是NAND型的闪速存储器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261740274P | 2012-12-20 | 2012-12-20 | |
US61/740,274 | 2012-12-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103885892A true CN103885892A (zh) | 2014-06-25 |
Family
ID=50954800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310208522.6A Pending CN103885892A (zh) | 2012-12-20 | 2013-05-30 | 存储器控制器 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20140181375A1 (zh) |
CN (1) | CN103885892A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105320608A (zh) * | 2014-08-01 | 2016-02-10 | Arm有限公司 | 用于控制存储器设备处理访问请求的存储器控制器和方法 |
CN107148622A (zh) * | 2014-09-23 | 2017-09-08 | 甲骨文国际公司 | 智能闪存高速缓存记录器 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9396120B2 (en) | 2014-12-23 | 2016-07-19 | Intel Corporation | Adjustable over-restrictive cache locking limit for improved overall performance |
US10061918B2 (en) * | 2016-04-01 | 2018-08-28 | Intel Corporation | System, apparatus and method for filtering memory access logging in a processor |
KR102529710B1 (ko) | 2018-02-19 | 2023-05-09 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
KR102417696B1 (ko) | 2018-03-20 | 2022-07-07 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작방법 |
US10733171B2 (en) | 2018-04-03 | 2020-08-04 | Sap Se | Database lock management with cache-optimized hash table |
JP2020144534A (ja) * | 2019-03-05 | 2020-09-10 | キオクシア株式会社 | メモリ装置およびキャッシュ制御方法 |
CN110941449A (zh) * | 2019-11-15 | 2020-03-31 | 新华三半导体技术有限公司 | Cache块处理方法、装置及处理器芯片 |
US20210097004A1 (en) * | 2020-12-15 | 2021-04-01 | Intel Corporation | Logical to physical address indirection table in a persistent memory in a solid state drive |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5983329A (en) * | 1996-05-03 | 1999-11-09 | Sun Microsystems, Inc. | Caching virtual memory locks |
US20030070047A1 (en) * | 2001-10-09 | 2003-04-10 | Harry Dwyer | Method and apparatus for adaptive cache frame locking and unlocking |
US20030120870A1 (en) * | 2001-12-20 | 2003-06-26 | Goldschmidt Marc A. | System and method of data replacement in cache ways |
CN101326500A (zh) * | 2006-05-24 | 2008-12-17 | 索尼计算机娱乐公司 | 提供同时软件/硬件高速缓存填充的方法与装置 |
CN101772759A (zh) * | 2007-08-02 | 2010-07-07 | 飞思卡尔半导体公司 | 高速缓存锁定设备及其方法 |
CN101971140A (zh) * | 2007-12-20 | 2011-02-09 | 先进微装置公司 | 用于实施锁定操作的系统及方法 |
CN102576333A (zh) * | 2009-10-05 | 2012-07-11 | 马维尔国际贸易有限公司 | 非易失性存储器中的数据高速缓存 |
CN102567220A (zh) * | 2010-12-10 | 2012-07-11 | 中兴通讯股份有限公司 | Cache存取的控制方法及装置 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4513367A (en) * | 1981-03-23 | 1985-04-23 | International Business Machines Corporation | Cache locking controls in a multiprocessor |
AU614044B2 (en) * | 1988-03-25 | 1991-08-15 | Nec Corporation | Information processing system capable of quickly detecting an extended buffer memory regardless of a state of a main memory device |
US5961606A (en) * | 1997-06-30 | 1999-10-05 | Sun Microsystems, Inc. | System and method for remote buffer allocation in exported memory segments and message passing between network nodes |
US6216207B1 (en) * | 1997-12-31 | 2001-04-10 | Alcatel Usa Sourcing, L.P. | Performance monitoring storage module for storing performance management data |
JP3438650B2 (ja) * | 1999-05-26 | 2003-08-18 | 日本電気株式会社 | キャッシュメモリ |
US6625701B1 (en) * | 1999-11-09 | 2003-09-23 | International Business Machines Corporation | Extended cache coherency protocol with a modified store instruction lock release indicator |
JP4376692B2 (ja) * | 2004-04-30 | 2009-12-02 | 富士通株式会社 | 情報処理装置、プロセッサ、プロセッサの制御方法、情報処理装置の制御方法、キャッシュメモリ |
JP2008234074A (ja) * | 2007-03-16 | 2008-10-02 | Fujitsu Ltd | キャッシュ装置 |
US7457920B1 (en) * | 2008-01-26 | 2008-11-25 | International Business Machines Corporation | Method and system for cache eviction |
US8966155B1 (en) * | 2008-04-01 | 2015-02-24 | Daniel P. Mulligan | System and method for implementing a high performance data storage system |
US8775863B2 (en) * | 2011-05-31 | 2014-07-08 | Freescale Semiconductor, Inc. | Cache locking control |
US9690694B2 (en) * | 2011-09-27 | 2017-06-27 | Sandisk Technologies, Llc | Apparatus, system, and method for an address translation layer |
-
2013
- 2013-05-30 CN CN201310208522.6A patent/CN103885892A/zh active Pending
- 2013-06-27 US US13/928,586 patent/US20140181375A1/en not_active Abandoned
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5983329A (en) * | 1996-05-03 | 1999-11-09 | Sun Microsystems, Inc. | Caching virtual memory locks |
US20030070047A1 (en) * | 2001-10-09 | 2003-04-10 | Harry Dwyer | Method and apparatus for adaptive cache frame locking and unlocking |
US20030120870A1 (en) * | 2001-12-20 | 2003-06-26 | Goldschmidt Marc A. | System and method of data replacement in cache ways |
CN101326500A (zh) * | 2006-05-24 | 2008-12-17 | 索尼计算机娱乐公司 | 提供同时软件/硬件高速缓存填充的方法与装置 |
CN101772759A (zh) * | 2007-08-02 | 2010-07-07 | 飞思卡尔半导体公司 | 高速缓存锁定设备及其方法 |
CN101971140A (zh) * | 2007-12-20 | 2011-02-09 | 先进微装置公司 | 用于实施锁定操作的系统及方法 |
CN102576333A (zh) * | 2009-10-05 | 2012-07-11 | 马维尔国际贸易有限公司 | 非易失性存储器中的数据高速缓存 |
CN102567220A (zh) * | 2010-12-10 | 2012-07-11 | 中兴通讯股份有限公司 | Cache存取的控制方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105320608A (zh) * | 2014-08-01 | 2016-02-10 | Arm有限公司 | 用于控制存储器设备处理访问请求的存储器控制器和方法 |
CN105320608B (zh) * | 2014-08-01 | 2021-01-29 | Arm 有限公司 | 用于控制存储器设备处理访问请求的存储器控制器和方法 |
US11243898B2 (en) | 2014-08-01 | 2022-02-08 | Arm Limited | Memory controller and method for controlling a memory device to process access requests issued by at least one master device |
CN107148622A (zh) * | 2014-09-23 | 2017-09-08 | 甲骨文国际公司 | 智能闪存高速缓存记录器 |
Also Published As
Publication number | Publication date |
---|---|
US20140181375A1 (en) | 2014-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103885892A (zh) | 存储器控制器 | |
EP2939120B1 (en) | Priority-based garbage collection for data storage systems | |
US9405675B1 (en) | System and method for managing execution of internal commands and host commands in a solid-state memory | |
CN103092764B (zh) | 用于获得和使用非易失性存储器健康信息的系统和方法 | |
JP7046669B2 (ja) | 逆キャッシュテーブルを用いるハードウェアベースのマップアクセラレーション | |
US9251055B2 (en) | Memory system and control method of memory system | |
US8214595B2 (en) | Storage system which utilizes two kinds of memory devices as its cache memory and method of controlling the storage system | |
US8438334B2 (en) | Hybrid storage subsystem with mixed placement of file contents | |
US8612692B2 (en) | Variable write back timing to nonvolatile semiconductor memory | |
CN105339910B (zh) | 在混合驱动器中的虚拟nand容量扩展 | |
CN104115134B (zh) | 用于管理对复合数据存储设备进行访问的方法和系统 | |
CN105190571B (zh) | 页表数据管理 | |
WO2014061064A1 (en) | Cache control apparatus and cache control method | |
CN103207839B (zh) | 存储的高速缓存内的轨道清除的高速缓存管理方法和系统 | |
CN103019958A (zh) | 使用数据属性来管理固态存储器里的数据的方法 | |
KR101056460B1 (ko) | 캐쉬 제어기 및 캐쉬 블록 교체 방법 | |
CN110321065A (zh) | 存储装置及计算机系统 | |
Li et al. | Pannier: A container-based flash cache for compound objects | |
US20140237190A1 (en) | Memory system and management method therof | |
CN106354664A (zh) | 一种固态硬盘数据传输方法及装置 | |
US8732404B2 (en) | Method and apparatus for managing buffer cache to perform page replacement by using reference time information regarding time at which page is referred to | |
CN104375955B (zh) | 高速缓冲存储器设备及其控制方法 | |
CN109446115A (zh) | 一种映射表管理方法、装置和计算机可读存储介质 | |
KR101179027B1 (ko) | 버퍼의 지역성에 기초한 가비지 컬렉션을 수행하는 낸드 플래시 메모리 시스템 및 방법 | |
US10713165B2 (en) | Adaptive computer cache architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140625 |