CN102169464A - 一种用于非易失性存储器的缓存方法、装置及智能卡 - Google Patents

一种用于非易失性存储器的缓存方法、装置及智能卡 Download PDF

Info

Publication number
CN102169464A
CN102169464A CN2010105672331A CN201010567233A CN102169464A CN 102169464 A CN102169464 A CN 102169464A CN 2010105672331 A CN2010105672331 A CN 2010105672331A CN 201010567233 A CN201010567233 A CN 201010567233A CN 102169464 A CN102169464 A CN 102169464A
Authority
CN
China
Prior art keywords
data
address
cache
write operation
storer
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
Application number
CN2010105672331A
Other languages
English (en)
Other versions
CN102169464B (zh
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.)
Beijing Watchdata Co ltd
Original Assignee
Beijing WatchData System 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 Beijing WatchData System Co Ltd filed Critical Beijing WatchData System Co Ltd
Priority to CN2010105672331A priority Critical patent/CN102169464B/zh
Publication of CN102169464A publication Critical patent/CN102169464A/zh
Application granted granted Critical
Publication of CN102169464B publication Critical patent/CN102169464B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明涉及存储领域,公开了一种用于非易失性存储器的缓存方法、装置及智能卡,能够提高系统性能,并减少对存储器的擦除写回操作。本发明的方法包括:确定需要进行写操作;当写操作的数据在存储器中的地址命中一级缓存的数据块的地址时,直接将写操作的数据写入一级缓存,否则,将写操作的数据及写操作的数据在存储器中的地址写入二级缓存,其中,一级缓存中缓存的是存储器中的数据块,二级缓存中缓存的是所述存储器中的数据以及该数据的地址。

Description

一种用于非易失性存储器的缓存方法、装置及智能卡
技术领域
本发明涉及存储领域,尤其是涉及一种用于非易失性存储器的缓存方法、装置及智能卡。
背景技术
目前存在着一些存储介质(比如E2PROM、NORflash),它们的写入和读取数据在时间上存在很大的差异,读取数据时的表现相同于内存,但写入数据时却相对缓慢,并且往往需要在写入数据前按照某种大小的块进行擦除操作后才能写入数据,这种存储器称为可直接寻址非易失性存储器。
这种类型的存储器常用于存储数据,并且需要使用数据结构对其进行分配操作,需要在断电后仍能保持其分配状态的情况,比如说文件系统、类似内存的申请释放等等,无论其分配算法是如何实现的,但一般都要在存储介质上保存用于分配管理的信息,很多情况下,这些信息往往需要写入的内容很少但却分散于存储介质的各个地方,对于这些管理信息的写入必须精心安排。
目前对这种类型的存储介质的读写操作一般都是使用一级缓存算法来操作的。其方式为:全部存储介质地址分成若干固定大小的块,这样每个地址都会属于某一个块,用一个和块等大的内存区域来缓存某一个块的内容,此缓冲内存区域可简称为缓存。设置全局量buffer_block表示当前正在缓存区域中的块。判断命中是指判断当前读写操作的地址是否和buffer_block属于同一块。
一级缓存写操作的具体方法为:
写操作:若写入地址命中一级缓存中所缓冲的块,则此次写入只会改写缓存的内容。若写入地址未命中一级缓存所缓冲的块,则把缓存内容整体写回存储介质的对应块,再把写入地址对应的存储介质中对应的块读取到缓存,然后改写缓存中写入地址对应的内容,同时修改此时的buffer_block值。
但是,采用上述一级缓存算法,在来自上层写操作的块号较乱的情况下,(例如:对于管理信息的写入),会频繁对存储介质进行擦除操作并写回,造成系统性能下降,并且对存储器的使用寿命损害较大,比如上层写操作的块号顺序为1→2→1→2→1→2,则每次写入数据时,都会造成缓存区不被命中,每次都需要将缓存中的内容整体写回存储介质的对应块,再把写入地址对应的存储介质中对应的块读取到缓存,然后改写缓存中写入地址对应的内容,会对存储介质进行频繁的擦除写回操作,对存储器的使用寿命损害较大。
发明内容
本发明提供一种用于非易失性存储器的缓存方法、装置及智能卡,能够提高系统性能,并减少对存储器的擦除写回操作。
一种用于非易失性存储器的缓存方法,包括:
确定需要进行写操作;
当写操作的数据在存储器中的地址命中一级缓存中数据块的地址时,直接将写操作的数据写入一级缓存,否则,将写操作的数据及写操作的数据在存储器中的地址写入二级缓存,其中,所述一级缓存中缓存的是存储器中的数据块,所述二级缓存中缓存的是所述存储器中的数据以及该数据的地址。
一种用于非易失性存储器的缓存装置,包括:
确定模块,用于确定需要进行写操作;
写操作模块,用于当写操作的数据在存储器中的地址命中一级缓存中数据块的地址时,直接将写操作的数据写入一级缓存,否则,将写操作的数据及写操作的数据在存储器中的地址写入二级缓存,其中,所述一级缓存中缓存的是存储器中的数据块,所述二级缓存中缓存的是所述存储器中的数据以及该数据的地址。
本发明实施例还提供一种智能卡,包括上述用于非易失性存储器的缓存装置。
本发明实施例中在一级缓存的基础上,增加了二级缓存,一级缓存中存储的是存储器中的某一数据块,二级缓存中存储的是存储器中的若干数据地址以及数据地址对应的数据。当需要写操作时,若写操作的地址未命中一级缓存的数据块的地址时,将写操作的数据及地址写入二级缓存。这样就可以在写操作没有命中一级缓存时,尽量用二级缓存暂存写操作的数据。能够提高系统性能,并减少对存储器的擦除写回操作。
附图说明
图1为本发明实施例提供的非易失性存储器的缓存方法流程图;
图2为本发明实施例提供的非易失性存储器的写操作的具体方法流程图;
图3为本发明实施例的二级缓存的结构图;
图4为本发明实施例提供的非易失性存储器的缓存装置的结构图。
具体实施方式
本发明实施例提供一种非易失性存储器的缓存方法,在现有的一级缓存的基础上,增加使用二级缓存,来提高一级缓存的命中率。
本发明实施例中在现有的一级缓存的基础上,增加二级缓存,一级缓存中存储的是存储器中的某一数据块,二级缓存中存储的是存储器中的若干数据地址以及数据地址对应的数据。当需要写操作时,若写操作的地址未命中一级缓存的数据块的地址时,将写操作的数据及地址写入二级缓存。这样就可以在写操作没有命中一级缓存时,尽量用二级缓存暂存写操作的数据。并且,在二级缓存已满时,则在二级缓存中进行选择,将二级缓存中数据地址属于相同数据块最多的数据写入一级缓存,并将二级缓存中该数据地址以及数据删除。这样只有在二级缓存已满时,才进行一级缓存中数据块的换写操作,能够尽量延缓一级缓存中的数据块的换写操作(即对存储器的擦除写回操作),同时,由于尽量多地淘汰了二级缓存中的数据,也就在二级缓存中腾出了更多可用位置,充分利用了二级缓存的存储空间。
本发明实施例提供一种非易失性存储器的缓存方法,如图1所示,包括:
S101、设置一级缓存以及二级缓存,其中,一级缓存中缓存的是存储器中对应的数据块,二级缓存中缓存的是存储器中的数据以及与数据对应的地址;
其中,二级缓存中缓存的是若干个数据以及与数据对应的地址,并且二级缓存中数据的地址不属于一级缓存的数据块对应的地址范围。
S102、当需要写操作时,若写操作的地址命中一级缓存的数据块的地址时,直接将写操作的数据写入一级缓存,若写操作的地址未命中一级缓存的数据块的地址时,将写操作的数据及地址写入二级缓存;
本发明实施例中的写操作的地址具体指写操作的数据在存储器中的地址,简称写操作的地址,读操作的地址具体指读操作的数据在存储器中的地址,简称读操作的地址。
若写操作的地址未命中一级缓存时,可直接将写操作的数据以及地址写入二级缓存,同样可以实现本发明,利用二级缓存来暂存写操作的数据。
较佳地,若写操作的地址未命中一级缓存的数据块的地址时,将写操作的数据及地址写入二级缓存,具体为:当写操作的地址命中二级缓存中的地址时,直接将二级缓存中该地址对应的数据修改为本次写操作的数据;当写操作的地址未命中二级缓存中的地址时,根据二级缓存当前存储空间的可用程度,将写操作的数据及地址写入二级缓存。
较佳地,根据二级缓存当前存储空间的可用程度,将写操作的数据及地址写入二级缓存,具体为:当二级缓存未满时,将写操作的数据以及地址写入二级缓存;当二级缓存已满时,将一级缓存中的数据块写回存储器,统计二级缓存中数据的地址属于相同数据块的数量,并将二级缓存中属于相同数据块最多的地址对应的数据写入一级缓存,并将该地址以及数据从二级缓存中删除,并将写操作的数据及地址写入二级缓存。这样,可以保证只有在二级缓存已满时,才将一级缓存中的数据块写回存储器,并将二级缓存中属于相同数据块的数据写入一级缓存,尽可能延缓一级缓存中的数据块的换写操作,也就是对存储器的擦除写回操作。进一步,统计二级缓存中属于相同块的数据,并将属于相同块的数据地址最多的数据写回一级缓存,可以保证一次换写操作,在二级缓存中能够腾出的空间最多,提高了二级缓存的空间利用率。
较佳地,在二级缓存已满时,将该地址以及数据从二级缓存中删除,并将写操作的数据及地址写入二级缓存之间,还包括:判断写操作的地址是否属于该数据块对应的地址范围,如果是,则将写操作的数据写入一级缓存,如果否,则将写操作的数据及地址写入二级缓存。这样,可以保证二级缓存中的数据地址不会出现和一级缓存的数据块的地址有重复的情况。
S103、当需要读操作时,若读操作的地址命中二级缓存的地址时,直接读取二级缓存中该地址对应的数据,若读操作的地址未命中二级缓存的地址时,从一级缓存或者存储器中读取数据。
若读操作的地址未命中二级缓存的地址时,判断读操作的地址是否命中一级缓存的数据块的地址,如果是,则直接从一级缓存中读取数据,如果否,直接从存储器中读取数据。
本发明实施例提供一种非易失性存储器的写操作的具体方法,如图2所示,包括:
S201、预先设置一级缓存以及二级缓存,其中,一级缓存中缓存的是存储器中对应的数据块,二级缓存中缓存的是存储器中的数据以及与数据对应的地址;
具体地,二级缓存中包含的是多个{地址,值}对的数组,其中,值即表示数据。一级缓存中缓存的是块,二级缓存中缓存的是若干个点(即若干个地址以及与地址对应的数据)。
S202、当需要进行写操作时,判断写操作的地址是否命中一级缓存的地址,如果是,执行步骤S203,如果否,执行步骤S204;
S203、直接将写操作的数据写入一级缓存,结束写操作;
S204、判断写操作的地址是否命中二级缓存的地址,如果是,执行步骤S205,如果否,执行步骤S206;
S205、直接将该二级缓存中该地址对应的数据修改为本次写操作的数据,结束写操作;
S206、判断二级缓存是否已满,如果是,执行步骤S208,如果否,执行步骤S207;
S207、直接将写操作的地址以及数据写入二级缓存,结束写操作;
S208、将一级缓存中的数据块写回存储器;
S209、统计二级缓存中数据地址属于相同数据块的数量,并将数量最大的数据块对应的数据地址以及数据从二级缓存中删除,并写入一级缓存;
S210、判断写操作的地址是否属于该数据块,如果是,执行步骤S211,如果否,执行步骤S212;
S211、将该写操作的数据写入一级缓存,结束写操作;
S212、将该写操作的数据以及地址写入二级缓存。
上述步骤具体描述了本发明中的写操作流程,当需要读操作时,若读操作的地址命中二级缓存的地址时,直接读取二级缓存中该地址对应的数据,若读操作的地址未命中二级缓存的地址时,从一级缓存或者存储器中读取数据。
其中,本发明的一级缓存中缓存的是存储器中的数据块,二级缓存中缓存的是存储器中的若干个数据以及与数据对应的地址。其中,二级缓存的结构为包含多个{地址,值}对的数组。如图3所示,为二级缓存的结构,在二级缓存中可设置地址为0时,表示该项没有缓存数据。在本发明的实施例中可将二级缓存中没有存储数据的项称为无效地址,在实施例中均用地址0表示。当然,也可以采用其他值,表示该项没有缓存数据,当采用其他值时,只需要采用的值和存储器中的地址不冲突即可。
下面介绍如何统计二级缓存中属于相同数据块的个数。
统计二级缓存中地址属于相同数据块的个数,可以多次遍历二级缓存,进行统计,较佳地,可以设置两个数组,只通过一次遍历二级缓存中的数据元素即可实现统计。
设置两个数组count_1[N]、count_2[N],其中,count_1[i]、count_2[i]表示二级缓存中和该第i个地址属于相同数据块的地址个数,其中,0<i≤N,所述count_1[N]用于统计二级缓存中地址属于相同数据块的数量,count_2[N]用于临时计算二级缓存中地址属于相同数据块的数量;
在每次写操作时,确定写操作的数据在存储器中的地址和第i个地址不一致时,比较写操作的地址和第i个地址是否属于相同数据块,当属于相同数据块时,将count_2[i]的值加1,否则,count_2[i]的值不变;
遍历二级缓存中每一个地址后,将count_1[N]=count_2[N]。
其中,在每次写操作遍历时,当确定写操作的数据在存储器中的地址和第i个地址一致时,直接比较结束,并保持count_1[N]的值不变。
上述统计过程具体为:
假设二级缓存中的每一个数据和对应的地址称为一个数据元素,二级缓存中的存储容量为N个数据元素,其中,设置两个数组count_1[N]、count_2[N],count_1[i]、count_2[i]表示二级缓存中第i个元素的计数值,该计数值表示二级缓存中和该元素属于相同数据块的个数,其中,数组1用于统计,数组2用于在遍历过程中临时计算。
当需要写入新数据X时,将新数据X的地址和二级缓存中的数据元素进行比较,如果新数据X的地址命中二级缓存中的数据元素的地址,则结束比较过程,否则需要遍历比较二级缓存中的每一个数据元素。
其中,比较时进行如下操作:当新数据X的地址没有命中该数据元素的地址时,需要判断新数据X的地址是否和该数据元素属于同一数据块,如果是,将该数据元素在临时数组2中对应的count_2[i]+1,继续将X和下一数据元素比较;如果否,直接将X和下一数据元素比较。其中,在任何一个比较过程中,当新数据X的地址命中二级缓存中的数据元素的地址,则直接结束,并将此时临时数组2中的数值丢弃,将数组1中的数据同样写入到数组2中。
遍历二级缓存中的所有数据元素后,此时二级缓存中和新数据X属于相同块的数据元素在数组2中对应的计数值都增加了1。令count_1[i]=count_2[i],即可实现在数组1中统计了属于相同数据块的数据元素的个数。其中,无效地址对应的数据元素的计数值记为0。
较佳地,设置两个指针(p_cur)、(p_temp),分别指向两个数组count_1[N]、count_2[N]。这两个指针一个用来表示当前计数(p_cur),另一个用于临时计算(p_temp)。当新数据X的地址没有命中该数据元素的地址时,需要判断新数据X的地址是否和该数据元素i属于同一数据块,如果是,则p_temp[i]=p_cur[i]+1;否则p_temp[i]=p_cur[i];如果碰到命中的情况(X地址和某一个i项数据元素地址相同),则直接结束。如果全不命中,则使p_cur和p_temp的指向交换(即如果原先p_cur指向count_1,p_temp指向count_2,交换后p_cur指向count_2,p_temp指向count_1)。采用两个指针,这样在遍历的比较过程中,只需要改变p_temp的值,当X命中二级缓存的地址时,则count_1[N]的计数值不会改变,而全不命中时,只需交换两个指针,则临时数组count_2[N]中的计算结果值就是下一步的当前值count_1[N]。
上述步骤是在写入数据X之前,遍历二级缓存,若命中二级缓存,则直接写入,若不命中二级缓存,则需要将二级缓存对应的数组1更新,再根据二级缓存当前的存储空间的可用程度,确定是否将该数据写入二级缓存。
统计出二级缓存中属于相同数据块的数据元素的个数后,需要将写操作的元素写入二级缓存中。若当前二级缓存未满,则直接将需要写的数据以及地址写入二级缓存,若二级缓存已满,可以将二级缓存中属于同一数据块的数据元素取出,放到一级缓存中,再将写数据写入二级缓存中,同时一级缓存中原有的数据块,需写回存储器。这样可以采用二级缓存暂存写操作的数据,并且只有当二级缓存已满时,才会对一级缓存以及存储器进行换写操作。
较佳地,将数组1中最大值对应的二级缓存中的数据元素全部取出,放到一级缓存中。这样就可以最大程度的释放二级缓存中的空间,提高二级缓存的空间利用率。
当然,在将二级缓存中属于相同数据块的数据写入一级缓存中之后,本次写操作的数据如果是属于写入一级缓存的块的数据,则同样将本次写操作的数据写入一级缓存中。例如:将二级缓存中同属于数据块1的数据取出写入一级缓存中,若当前写操作的数据X的写地址属于数据块1,则将数据X同样写入一级缓存,若X的地址不属于数据块1,则数据X写入到二级缓存中。
本发明实施例还提供一种用于非易失性存储器的缓存装置,如图4所示,包括:
确定模块41,用于确定需要进行写操作;
写操作模块42,用于当写操作的数据在存储器中的地址命中一级缓存中数据块的地址时,直接将写操作的数据写入一级缓存,否则,将写操作的数据及写操作的数据在存储器中的地址写入二级缓存,其中,一级缓存中缓存的是存储器中的数据块,二级缓存中缓存的是存储器中的数据以及该数据的地址。
较佳地,写操作模块42,具体用于当写操作的数据在存储器中的地址命中二级缓存中的地址时,直接将二级缓存中该地址对应的数据修改为本次写操作的数据;当写操作的数据在存储器中的地址未命中二级缓存中的地址时,将写操作的数据及地址写入二级缓存。
较佳地,上述装置还包括:
读操作模块43,用于确定需要进行读操作,若读操作的数据在存储器中的地址命中二级缓存的地址时,直接读取二级缓存中该地址对应的数据,若读操作的数据在存储器中的地址未命中二级缓存的地址时,从一级缓存或者存储器中读取数据。
本发明实施例还提供一种智能卡,其中包括上述用于非易失性存储器的缓存装置。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

Claims (13)

1.一种用于非易失性存储器的缓存方法,其特征在于,包括:
确定需要进行写操作;
当写操作的数据在存储器中的地址命中一级缓存中数据块的地址时,直接将写操作的数据写入一级缓存,否则,将写操作的数据及写操作的数据在存储器中的地址写入二级缓存,其中,所述一级缓存中缓存的是存储器中的数据块,所述二级缓存中缓存的是所述存储器中的数据以及该数据的地址。
2.如权利要求1所述的方法,其特征在于,所述二级缓存中的数据的地址不属于所述一级缓存中的数据块对应的地址范围。
3.如权利要求1所述的方法,其特征在于,所述将写操作的数据及写操作的数据在存储器中的地址写入二级缓存,具体包括:
当写操作的数据在存储器中的地址命中二级缓存中的地址时,直接将二级缓存中该地址对应的数据修改为本次写操作的数据;
当写操作的数据在存储器中的地址未命中二级缓存中的地址时,将写操作的数据及写操作的数据在存储器中的地址写入二级缓存。
4.如权利要求3所述的方法,其特征在于,所述将写操作的数据及写操作的数据在存储器中的地址写入二级缓存,具体为:
当二级缓存未满时,直接将写操作的数据以及写操作的数据在存储器中的地址写入二级缓存;
当二级缓存已满时,将一级缓存中的数据块写回存储器,统计二级缓存中地址属于相同数据块的数量,并将二级缓存中属于相同数据块最多的地址对应的数据写入一级缓存,并将所述属于相同数据块最多的地址以及数据从二级缓存中删除,并将写操作的数据及写操作的数据在存储器中的地址写入二级缓存。
5.如权利要求4所述的方法,其特征在于,所述将属于相同数据块最多的地址以及数据从二级缓存中删除,并将写操作的数据及地址写入二级缓存之间,还包括:
判断写操作的地址是否属于一级缓存中该相同数据块对应的地址范围,如果是,则将写操作的数据写入一级缓存,如果否,则将写操作的数据及写操作的数据在存储器中的地址写入二级缓存。
6.如权利要求1所述的方法,其特征在于,还包括:
确定需要进行读操作,若读操作的数据在存储器中的地址命中二级缓存的地址时,直接读取二级缓存中该地址对应的数据,若读操作的数据在存储器中的地址未命中二级缓存的地址时,从一级缓存或者存储器中读取数据。
7.如权利要求6所述的方法,其特征在于,若读操作的数据在存储器中的地址未命中二级缓存的地址时,从一级缓存或者存储器中读取数据,具体为:
若读操作的数据在存储器中的地址未命中二级缓存的地址时,当读操作的数据在存储器中的地址命中一级缓存的数据块的地址时,直接从一级缓存中读取数据,否则,直接从存储器中读取数据。
8.如权利要求4所述的方法,其特征在于,所述统计二级缓存中地址属于相同数据块的数量,具体为:
设置两个数组count_1[N]、count_2[N],其中,count_1[i]、count_2[i]表示二级缓存中和该第i个地址属于相同数据块的地址个数,其中,0<i≤N,所述count_1[N]用于统计二级缓存中地址属于相同数据块的数量,count_2[N]用于临时计算二级缓存中地址属于相同数据块的数量;
在每次写操作时,确定写操作的数据在存储器中的地址和第i个地址不一致时,比较写操作的地址和第i个地址是否属于相同数据块,当属于相同数据块时,将count_2[i]的值加1,否则,count_2[i]的值不变;
遍历二级缓存中每一个地址后,将count_1[N]=count_2[N]。
9.如权利要求8所述的方法,其特征在于,在每次写操作时,当确定写操作的数据在存储器中的地址和第i个地址一致时,直接结束,并保持count_1[N]的值不变。
10.一种用于非易失性存储器的缓存装置,其特征在于,包括:
确定模块,用于确定需要进行写操作;
写操作模块,用于当写操作的数据在存储器中的地址命中一级缓存中数据块的地址时,直接将写操作的数据写入一级缓存,否则,将写操作的数据及写操作的数据在存储器中的地址写入二级缓存,其中,所述一级缓存中缓存的是存储器中的数据块,所述二级缓存中缓存的是所述存储器中的数据以及该数据的地址。
11.如权利要求10所述的装置,其特征在于,所述写操作模块,具体用于当写操作的数据在存储器中的地址命中二级缓存中的地址时,直接将二级缓存中该地址对应的数据修改为本次写操作的数据;当写操作的数据在存储器中的地址未命中二级缓存中的地址时,将写操作的数据及写操作的数据在存储器中的地址写入二级缓存。
12.如权利要求10所述的装置,其特征在于,还包括:
读操作模块,用于确定需要进行读操作,若读操作的数据在存储器中的地址命中二级缓存的地址时,直接读取二级缓存中该地址对应的数据,若读操作的数据在存储器中的地址未命中二级缓存的地址时,从一级缓存或者存储器中读取数据。
13.一种智能卡,其特征在于,包括权利要求10至12任一权利要求所述的用于非易失性存储器的缓存装置。
CN2010105672331A 2010-11-30 2010-11-30 一种用于非易失性存储器的缓存方法、装置及智能卡 Expired - Fee Related CN102169464B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010105672331A CN102169464B (zh) 2010-11-30 2010-11-30 一种用于非易失性存储器的缓存方法、装置及智能卡

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010105672331A CN102169464B (zh) 2010-11-30 2010-11-30 一种用于非易失性存储器的缓存方法、装置及智能卡

Publications (2)

Publication Number Publication Date
CN102169464A true CN102169464A (zh) 2011-08-31
CN102169464B CN102169464B (zh) 2013-01-30

Family

ID=44490628

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010105672331A Expired - Fee Related CN102169464B (zh) 2010-11-30 2010-11-30 一种用于非易失性存储器的缓存方法、装置及智能卡

Country Status (1)

Country Link
CN (1) CN102169464B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103488582A (zh) * 2013-09-05 2014-01-01 深圳市华为技术软件有限公司 写高速缓冲存储器的方法及装置
CN104298471A (zh) * 2014-09-16 2015-01-21 青岛海信信芯科技有限公司 一种高速缓存的数据写入方法及装置
WO2015101211A1 (zh) * 2013-12-30 2015-07-09 国民技术股份有限公司 存储系统及其非易失性存储器的控制方法
CN106126440A (zh) * 2016-06-22 2016-11-16 中国科学院计算技术研究所 一种改善数据在缓存中空间局部性的缓存方法及装置
CN106980469A (zh) * 2017-03-07 2017-07-25 记忆科技(深圳)有限公司 一种提高固态硬盘顺序写缓存效率的方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6665776B2 (en) * 2001-01-04 2003-12-16 Hewlett-Packard Development Company L.P. Apparatus and method for speculative prefetching after data cache misses
CN1499382A (zh) * 2002-11-05 2004-05-26 华为技术有限公司 廉价冗余磁盘阵列系统中高效高速缓存的实现方法
CN1950804A (zh) * 2004-03-08 2007-04-18 桑迪士克股份有限公司 闪速存储器控制器高速缓存架构
CN101334759A (zh) * 2007-06-28 2008-12-31 国际商业机器公司 访问处理器缓存的方法和系统
US20090216947A1 (en) * 2008-02-26 2009-08-27 International Business Machines Corporation System, method and processor for accessing data after a translation lookaside buffer miss

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6665776B2 (en) * 2001-01-04 2003-12-16 Hewlett-Packard Development Company L.P. Apparatus and method for speculative prefetching after data cache misses
CN1499382A (zh) * 2002-11-05 2004-05-26 华为技术有限公司 廉价冗余磁盘阵列系统中高效高速缓存的实现方法
CN1950804A (zh) * 2004-03-08 2007-04-18 桑迪士克股份有限公司 闪速存储器控制器高速缓存架构
CN101334759A (zh) * 2007-06-28 2008-12-31 国际商业机器公司 访问处理器缓存的方法和系统
US20090216947A1 (en) * 2008-02-26 2009-08-27 International Business Machines Corporation System, method and processor for accessing data after a translation lookaside buffer miss

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《中国优秀硕士学位论文全文数据库》 20090612 刘胜 DSP高效片内二级Cache控制器的设计与实现 , *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103488582A (zh) * 2013-09-05 2014-01-01 深圳市华为技术软件有限公司 写高速缓冲存储器的方法及装置
CN103488582B (zh) * 2013-09-05 2017-07-28 华为技术有限公司 写高速缓冲存储器的方法及装置
WO2015101211A1 (zh) * 2013-12-30 2015-07-09 国民技术股份有限公司 存储系统及其非易失性存储器的控制方法
CN104298471A (zh) * 2014-09-16 2015-01-21 青岛海信信芯科技有限公司 一种高速缓存的数据写入方法及装置
CN106126440A (zh) * 2016-06-22 2016-11-16 中国科学院计算技术研究所 一种改善数据在缓存中空间局部性的缓存方法及装置
CN106126440B (zh) * 2016-06-22 2019-01-25 中国科学院计算技术研究所 一种改善数据在缓存中空间局部性的缓存方法及装置
CN106980469A (zh) * 2017-03-07 2017-07-25 记忆科技(深圳)有限公司 一种提高固态硬盘顺序写缓存效率的方法

Also Published As

Publication number Publication date
CN102169464B (zh) 2013-01-30

Similar Documents

Publication Publication Date Title
US10552317B2 (en) Cache allocation in a computerized system
US11704239B2 (en) Garbage collection method for storage medium, storage medium, and program product
US10739996B1 (en) Enhanced garbage collection
EP2665065A2 (en) Electronic device employing flash memory
JP2006235960A (ja) ガーベッジコレクション高速化方法
CN103440207A (zh) 缓存方法及装置
JP2012033002A (ja) メモリ管理装置およびメモリ管理方法
US11138104B2 (en) Selection of mass storage device streams for garbage collection based on logical saturation
CN110673789B (zh) 固态硬盘的元数据存储管理方法、装置、设备及存储介质
CN102169464B (zh) 一种用于非易失性存储器的缓存方法、装置及智能卡
US20130198453A1 (en) Hybrid storage device inclucing non-volatile memory cache having ring structure
US9569381B2 (en) Scheduler for memory
JP6167646B2 (ja) 情報処理装置、制御回路、制御プログラム、および制御方法
CN105917303A (zh) 一种控制器、识别数据块稳定性的方法和存储系统
KR20130022604A (ko) 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법
CN102681792B (zh) 一种固态盘内存分区方法
TWI450271B (zh) 用來管理一快閃記憶體的複數個區塊之方法以及相關之記憶裝置及其控制器
CN108664217B (zh) 一种降低固态盘存储系统写性能抖动的缓存方法及系统
CN101853218A (zh) 用于磁盘阵列的读取方法和系统
Chen et al. Refinery swap: An efficient swap mechanism for hybrid DRAM–NVM systems
CN109753237A (zh) 计算设备和非易失性双列直插式存储器模块
CN104808967A (zh) 一种处理器的动态数据预取系统
CN102033812B (zh) 用于管理闪存多个区块的方法和相关记忆装置及其控制器
US11249921B2 (en) Page modification encoding and caching
KR100900189B1 (ko) 비휘발성 메모리 기반의 데이터베이스 관리 시스템 및 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: 100015 Beijing East Chaoyang District, West Gate eight West room eight Wan Hong West Street, Yan Dong business garden.

Patentee after: BEIJING WATCHDATA Co.,Ltd.

Address before: 100015 Beijing East Chaoyang District, West Gate eight West room eight Wan Hong West Street, Yan Dong business garden.

Patentee before: BEIJING WATCH DATA SYSTEM Co.,Ltd.

CP01 Change in the name or title of a patent holder
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130130

Termination date: 20211130

CF01 Termination of patent right due to non-payment of annual fee