首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

能重复数据删除的高速缓存的机器及其方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:三星电子株式会社

摘要:本发明公开一种能重复数据删除高速缓存及其方法。能重复数据删除高速缓存包括能重复数据删除读取高速缓存及不能重复数据删除写入缓冲器。能重复数据删除高速缓存包括重复数据删除引擎以管理从能重复数据删除读取高速缓存的读取以及写入,且返回指示写入是否成功的写入状态信号。能重复数据删除高速缓存包括高速缓存控制器,包括:确定是否能够在能重复数据删除读取高速缓存找到请求的地址的高速缓存命中未中检查;当能在能重复数据删除读取高速缓存找到所请求的数据时管理数据存取的命中块;当不能在能重复数据删除读取高速缓存找到所请求的数据时管理数据存取的未中块;将与对数据存取有关的信息存储在能重复数据删除读取高速缓存的历史存储。

主权项:1.一种能重复数据删除的高速缓存的机器,包括:高速缓存存储器,所述高速缓存存储器包括能重复数据删除的读取高速缓存及不能重复数据删除的写入缓冲器;重复数据删除引擎,使用所述能重复数据删除的读取高速缓存来管理数据读取及写入,所述重复数据删除引擎能够操作以发送写入状态信号,所述写入状态信号指示对所述能重复数据删除的读取高速缓存的写入请求是否成功;以及高速缓存控制器,包括:高速缓存命中未中检查逻辑,检查是否能够在所述能重复数据删除的读取高速缓存中找到请求中的地址;命中块,当所述高速缓存命中未中检查逻辑指示能够在所述能重复数据删除的读取高速缓存中找到所述地址时,从所述高速缓存存储器存取第一数据;未中块,当所述高速缓存命中未中检查逻辑指示不能够在所述能重复数据删除的读取高速缓存中找到所述地址时,从后端高容量存储器存取第二数据;以及历史存储,将与对所述第一数据的存取有关的信息存储在所述能重复数据删除的读取高速缓存中,其中所述高速缓存命中未中检查逻辑还检查是否能够在所述不能重复数据删除的写入缓冲器中找到所述地址。

全文数据:重复数据删除高速缓存及其方法[相关申请的交叉参考]本申请主张在2018年1月19日提出申请、序列号为62619,723的美国临时专利申请的权利,所述美国临时专利申请出于所有目的并入本申请供参考。技术领域本发明概念大体来说涉及数据高速缓存,且更具体来说涉及在高速缓存中使用能重复数据删除的存储器。背景技术能重复数据删除的存储器提供了一种增加系统中的“可用”存储器的方式。通过检测重复数据并只存储数据的单个副本,可使用原本可用来存储重复数据副本的存储来存储其他数据。更具体来说,即使请求使用不同的地址,然而请求对相同数据值进行存取的各种不同应用也可全部指向相同的物理地址。由于两个、三个或更多个不同的逻辑地址可映射到相同的物理地址,因此数据的附加副本原本所需要的存储可用于存储其他数据,从而使得存储器看起来存储比其物理上能够存储的总体数据多的总体数据。但是能重复数据删除的存储器也会引入自身的问题。管理哪些地址指向相同的数据是困难的,且数据存取读取及写入二者可能最终比其他存储形式更慢。尽管在使用存取相对慢的数据例如,硬盘驱动器时不一定是巨大的困难,但是当应用于较快的存储器件时,这种延迟可能是一个明显的限制。且存储器件正常运行得越快,重复数据删除datadeduplication的总体影响可能变得越大。举例来说,动态随机存取存储器DynamicRandomAccessMemory,DRAM存取对与重复数据删除固态磁盘SolidStateDisk,SSD或其他形式的闪存存储器相关联的延迟而言敏感得多,重复数据删除固态磁盘或其他形式的闪存存储器则比硬盘驱动器对延迟更敏感。仍旧需要一种在高速缓存中使用能重复数据删除的存储器来加速对后端存储器中的数据进行的存取的方式。发明内容根据本发明的实施例,提供一种能重复数据删除的高速缓存,所述能重复数据删除的高速缓存包括:高速缓存存储器,所述高速缓存存储器包括能重复数据删除的读取高速缓存及不能重复数据删除的写入缓冲器;重复数据删除引擎,使用所述能重复数据删除的读取高速缓存来管理数据读取及写入,所述重复数据删除引擎能够操作以发送写入状态信号,所述写入状态信号指示对所述能重复数据删除的读取高速缓存的写入请求是否成功;以及高速缓存控制器,所述高速缓存控制器包括:高速缓存命中未中检查逻辑,检查是否能够在所述能重复数据删除的读取高速缓存中找到请求中的地址;命中块,当所述高速缓存命中未中检查逻辑指示能够在所述能重复数据删除的读取高速缓存中找到所述地址时,从所述高速缓存存储器存取第一数据;未中块,当所述高速缓存命中未中检查逻辑指示不能够在所述能重复数据删除的读取高速缓存中找到所述地址时,从后端高容量存储器存取第二数据;以及历史存储,将与对所述第一数据的存取有关的信息存储在所述能重复数据删除的读取高速缓存中。根据本发明的实施例,提供一种能重复数据删除的高速缓存的方法,所述方法包括:接收要写入数据的写入请求;确定所述数据位于能重复数据删除的读取高速缓存中的高速缓存行中,所述能重复数据删除的读取高速缓存是高速缓存存储器中的第一区,所述高速缓存存储器包括不能重复数据删除的写入缓冲器作为第二区;使所述能重复数据删除的读取高速缓存中的所述高速缓存行无效;以及将所述数据存储在所述不能重复数据删除的写入缓冲器中。根据本发明的实施例,提供一种能重复数据删除的高速缓存的方法,所述方法包括:接收要读取数据的读取请求;确定所述数据不处于能重复数据删除的读取高速缓存中的多个高速缓存行中,所述能重复数据删除的读取高速缓存是高速缓存存储器中的第一区,所述高速缓存存储器包括不能重复数据删除的写入缓冲器作为第二区;从后端高容量存储器读取所述数据;选择所述能重复数据删除的读取高速缓存中的第一高速缓存行;将所述数据提供到重复数据删除引擎以尝试将所述数据写入所述第一高速缓存行;以及响应于所述读取请求,发送所述数据。附图说明图1示出根据本发明概念实施例的使用重复数据删除高速缓存的机器。图2示出图1所示机器的其他细节。图3示出图1所示重复数据删除高速缓存的示例性布局。图4示出包括重复数据删除引擎的图1所示重复数据删除高速缓存。图5示出图3到图4所示高速缓存控制器的细节。图6A到图6B示出根据本发明概念实施例的图1所示重复数据删除高速缓存处理写入请求的示例性流程的流程图。图7示出根据本发明概念实施例的图1所示重复数据删除高速缓存使图3所示能重复数据删除的读取高速缓存中的高速缓存行无效的示例性流程的流程图。图8A到图8C示出根据本发明概念实施例的图1所示重复数据删除高速缓存处理读取请求的示例性流程的流程图。[符号的说明]105:机器;110:处理器;115:器件驱动器;120:存储器件;125:存储器控制器;130:主存储器存储器后端高容量存储器;135:重复数据删除高速缓存能重复数据删除的高速缓存;205:时钟;210:网络连接件;215:总线;220:用户接口;225:输入输出引擎;305:DRAM高速缓存DRAM;310:高速缓存控制器;315:主机层;320:介质层;325:能重复数据删除的读取高速缓存;330:不能重复数据删除的写入缓冲器;335:元数据区;405:重复数据删除引擎;410:网络互连件;505:风险管理器;510:高速缓存命中未中检查;515:命中块;520:未中块;525:历史存储;605、610、615、620、625、630、635、640、645、650、705、710、805、810、815、820、825、830、835、840、845、850、855、860、865、870:步骤。具体实施方式现在将详细参照本发明概念的实施例,所述实施例的实例示出在附图中。在以下详细说明中,阐述许多具体细节以使得能够透彻地理解本发明概念。然而,应理解,所属领域中的一般技术人员无需这些具体细节便可实践本发明概念。在其他情形中,未对众所周知的方法、程序、组件、电路及网络予以详细阐述,以避免使实施例的各个方面不必要地模糊不清。应理解,尽管本文中可能使用“第一”、“第二”等用语来阐述各种元件,然而这些元件不应受这些用语限制。这些用语仅用于区分各个元件。举例来说,在不背离本发明概念的范围的条件下,可将第一模块称为第二模块,且类似地,可将第二模块称为第一模块。本文中在对本发明概念的说明中所使用的术语仅用于阐述具体实施例,而并非旨在限制本发明概念。除非上下文中清楚地另外指明,否则在对本发明概念的说明及随附权利要求书中所使用的单数形式“一aan”及“所述the”旨在也包含复数形式。还应理解,本文中所用用语“和或andor”指代且囊括相关联的列出项中的一个或多个项的任意及所有可能组合。还应理解,当在本说明书中使用用语“包括comprises和或comprising”时,是指明所陈述特征、整数、步骤、操作、元件和或组件的存在,但不排除一个或多个其他特征、整数、步骤、操作、元件、组件和或其群组的存在或添加。图式中的组件及特征未必按比例绘示。进行重复数据删除的动态随机存取存储器DRAM在给定的DRAM单元内实现增强的逻辑容量,但一般来说比普通的DRAM操作慢。这种较慢的性能可能阻碍使用进行重复数据删除的DRAM作为普通DRAM高速缓存。为解决这些顾虑,进行重复数据删除的DRAM高速缓存中的存储器可被划分成重复数据删除DRAM读取高速缓存及不进行重复数据删除的写入缓冲器。由于对重复数据删除DRAM进行的写入慢,因此传统的DRAM可用作写入缓冲器writebuffer,WB。读取请求大部分将由进行重复数据删除的读取高速缓存readcache,RC来服务,但写入将由正常的DRAMWB来服务。举例来说,如果物理DRAM是8吉字节gigabyte,GB,则物理DRAM可被分区成4GB物理重复数据删除DRAMRC提供总共8GB虚拟容量及4GB物理DRAMWB。重复数据删除引擎只针对由重复数据删除DRAMRC使用的特定4GB范围运行重复数据删除机制。但应注意,即使重复数据删除DRAM可用于读取高速缓存,然而仍然可能发生写入,此会影响重复数据删除DRAM。举例来说,来自主机的64字节byte,B更新可影响存储在重复数据删除DRAMRC中的数据写入命中,或者当数据当前不处于重复数据删除DRAMRC中时读取未中时可能需要来自后端高容量存储器的2千字节kilobyte,KB填充。为解决对重复数据删除DRAMRC进行写入的情况,可使用新的WR_Status信号:如果写入成功,则重复数据删除引擎返回ACK确定应答,否则重复数据删除引擎返回NAK。如果高速缓存控制器接收到NAK否定应答,则高速缓存控制器将取消高速缓存填充即,将不对所述2KB填充进行高速缓存。因此,为处理重复数据删除DRAMRC写入命中,重复数据删除DRAM高速缓存可更新RC元数据以使高速缓存行无效,且接着向重复数据删除引擎写入64B的零使高速缓存行无效此还可涉及对重复数据删除DRAMRC进行垃圾收集。在此过程完成之后,重复数据删除DRAM高速缓存可仿佛不存在重复数据删除DRAMRC写入命中一样继续进行操作即,重复数据删除DRAM高速缓存可仿佛存在重复数据删除DRAMRC写入未中一样继续进行操作。为对重复数据删除DRAMRC填充进行处理,重复数据删除DRAM高速缓存可读取历史及RC元数据,以选择要从重复数据删除DRAMRC逐出的一个高速缓存行。如果所选择的高速缓存行包含有效数据,则重复数据删除DRAM高速缓存可更新RC元数据以将高速缓存行标记为无效并向重复数据删除引擎写入2KB的零以使高速缓存行无效。接着一旦所选择的高速缓存行无效,重复数据删除DRAM高速缓存便可向重复数据删除引擎写入新的高速缓存行数据,同时重复数据删除引擎返回WR_Status信号。如果重复数据删除引擎返回ACK,则重复数据删除DRAM高速缓存可更新RC元数据以将高速缓存行标记为有效。另外,如果重复数据删除引擎返回NAK,则重复数据删除DRAM高速缓存便可丢弃将数据写入到重复数据删除DRAMRC的请求。以上本发明概念致力于解决使用能重复数据删除的存储器时写入性能会潜在地较低的问题。但是使用能重复数据删除的存储器还存在另一个问题:不能保证写入操作。举例来说,假设将执行重复数据删除DRAMRC填充操作,但重复数据删除DRAMRC中的每一个高速缓存行均存储有有效数据。如果被选择进行无效的高速缓存行指向已经过重复数据删除的数据也就是说,所述高速缓存行所指向的数据也被其他高速缓存行指向,则使所述高速缓存行无效将不会释放任何物理内存physicalmemory。作为另外一种选择,在重复数据删除RC写入命中的情形中,重复数据删除引擎可能无法以零来对高速缓存行进行重写,如果数据也正由另一个高速缓存行使用的话。对这种缺乏写入完成保证的问题存在两种解决方案:接受写入不能得到保证的情况,或者重试进行写入操作以尝试保证写入操作完成。为实现后者,可执行写入重试。如果写入失败即,重复数据删除引擎从所尝试的写入返回NAK信号,则可选择使另一个高速缓存行无效根据重复数据删除DRAM高速缓存的实施方式而定,可能涉及回写以及进行写入重试。由于使另一个高速缓存行无效可能使重复数据删除引擎能够完成对重复数据删除DRAMRC的写入操作,因此写入重试可能会成功。但是如果作为写入重试的一部分而被选择进行无效的高速缓存行指向也经历重复数据删除的数据,则写入重试可能会再次失败。因此,使高速缓存行无效及重试写入这一过程可根据需要重复多次。通常,重试过程的结束条件是:成功写入由来自重复数据删除引擎的ACK信号指示、逐出一组中的每一个高速缓存行、或尝试预定次数的写入重试。如果发生后面两种情况,则重复数据删除DRAM高速缓存行可简单地默认将结果返回到处理器而不成功地完成所需的写入操作。图1示出根据本发明概念实施例的使用重复数据删除高速缓存的机器。在图1中,示出机器105。机器105可包括处理器110。处理器110可为任何种类的处理器:例如,英特尔至强IntelXeon、赛扬Celeron、安腾Itanium或原子处理器Atomprocessor、超微半导体AMD皓龙处理器Opteronprocessor、先进精简指令集计算ReducedInstructionSetComputing,RISC机器AdvancedRISCMachine,ARM处理器等。尽管图1在机器105中示出单个处理器110,然而机器105可包括任意数目的处理器,所述处理器中的每一者可为单核处理器或多核处理器,且可以任意所需要的组合进行混合。处理器110可运行器件驱动器115,器件驱动器115可支持对存储器件120的存取:不同的器件驱动器可支持对机器105的另一些组件的存取。机器105还可包括存储器控制器125,存储器控制器125可用于管理对主存储器130的存取。存储器130可为任意种类的存储器,例如,闪存存储器、动态随机存取存储器DRAM、静态随机存取存储器StaticRandomAccessMemory,SRAM、永久随机存取存储器PersistentRandomAccessMemory、铁电随机存取存储器FerroelectricRandomAccessMemory,FRAM或非易失性随机存取存储器Non-VolatileRandomAccessMemory,NVRAM例如,磁阻随机存取存储器MagnetoresistiveRandomAccessMemory,MRAM等。存储器130还可为由不同的存储器类型形成的任何所需要的组合。机器105还可包括重复数据删除高速缓存135其还可被称为“重复数据删除高速缓存deduplicationcache”,如以下所阐述。尽管图1将机器105绘示为服务器其可为独立服务器standaloneserver或机架式服务器rackserver,然而本发明概念的实施例可包括任意所需类型的机器105而不具有限制。举例来说,机器105可由台式计算机或膝上型计算机或可受益于本发明概念实施例的任意其他器件取代。机器105还可包括专用的便携式计算器件、平板计算机、智能电话及其他计算器件。图2示出图1所示机器105的其他细节。在图2中,通常,机器105包括一个或多个处理器110,所述一个或多个处理器110可包括存储器控制器125及时钟205,存储器控制器125及时钟205可用于协调机器105的组件的运行。处理器110也可耦合到存储器130,存储器130可例如包括随机存取存储器randomaccessmemory,RAM、只读存储器read-onlymemory,ROM、或其他状态保持介质statepreservingmedia。处理器110还可耦合到存储器件120及网络连接件210,网络连接件210可为例如以太网连接件或无线连接件。处理器110还可连接到总线215,总线215可附接有用户接口220及可使用输入输出引擎225来管理的输入输出接口端口、以及其他组件。图3示出图1所示重复数据删除高速缓存135的示例性布局。在图3中,重复数据删除高速缓存135可分解成四个一般组件:DRAM305、高速缓存控制器310、主机层315及介质层320。DRAM305充当重复数据删除高速缓存135的实际存储器,且可被划分成三个区:能重复数据删除的读取高速缓存325、不能重复数据删除的写入缓冲器330及元数据区335。能重复数据删除的读取高速缓存325可用作重复数据删除存储器以存储可由处理器110从重复数据删除高速缓存135读取的数据。不能重复数据删除的写入缓冲器330可用作传统的即,非重复数据删除存储器以存储将从处理器110写入的数据。元数据区335可将与能重复数据删除的读取高速缓存325中的高速缓存行及不能重复数据删除的写入缓冲器330有关的信息:例如,哪些高速缓存行是有效的或无效的,以及哪些高速缓存行经过缓冲以写入到后端高容量存储器130。图3中未示出重复数据删除引擎,重复数据删除引擎管理对能重复数据删除的读取高速缓存325进行的实际数据写入:以下参照图4对重复数据删除引擎进行论述。能重复数据删除的读取高速缓存325、不能重复数据删除的写入缓冲器330及元数据区335可占据DRAM305的任意所需要的百分比。举例来说,如果DRAM305包括总共8吉字节GB,则能重复数据删除的读取高速缓存325及不能重复数据删除的写入缓冲器330可能各自包括近似4GB的存储元数据区335需要占据相对小量的DRAM305。在给定预期的重复数据删除比率的条件下,能重复数据删除的读取高速缓存325可接着模拟比其物理容量大的容量。举例来说,如果能重复数据删除的读取高速缓存325包括4GB的物理内存且具有等于2.0的目标重复数据删除比率,则能重复数据删除的读取高速缓存325可模拟8GB的虚拟内存。应注意,重复数据删除高速缓存135支持与能重复数据删除的读取高速缓存325的虚拟容量一样多的高速缓存行,能重复数据删除的读取高速缓存325的虚拟容量可且有可能超过能重复数据删除的读取高速缓存325的物理容量可支持的高速缓存行的数目。尽管图3示出DRAM305包括能重复数据删除的读取高速缓存325及不能重复数据删除的写入缓冲器330二者且表明它们二者提供不同的功能,然而它们二者还可具有一些功能重叠。举例来说,在本发明概念的一些实施例中,尽管不能重复数据删除的写入缓冲器330可存储从处理器110写入的数据且所述数据最终应被写入后端高容量存储器130,然而不能重复数据删除的写入缓冲器330还可充当“读取高速缓存”即使不经历重复数据删除,也可从不能重复数据删除的写入缓冲器330读取数据。因此,对于将被写入后端高容量存储器130的数据而言,相较于“瞬间transient”存储而言可更多地考虑不能重复数据删除的写入缓冲器330。在本发明概念的这种实施例中,任何时候提到检查能重复数据删除的读取高速缓存325的具体的高速缓存行时可被理解为也检查不能重复数据删除的写入缓冲器330的高速缓存行,以及视情况从能重复数据删除的读取高速缓存325或不能重复数据删除的写入缓冲器330读取数据,且数据可仅在不能重复数据删除的写入缓冲器330满了或者在不能重复数据删除的写入缓冲器330中的高速缓存行被无效以为新的高速缓存行腾出空间时被写入后端高容量存储器130。在本发明概念的这种实施例中,可仅在数据既未存储在能重复数据删除的读取高速缓存325中也未存储在不能重复数据删除的写入缓冲器330中时针对所请求的数据对后端高容量存储器130进行存取。高速缓存控制器310可充当重复数据删除高速缓存135后面的“大脑”,从而对写入或读取什么数据进行管理、选择要被无效或要进行写入的高速缓存行等。高速缓存控制器310可使用主机层315来与处理器110进行交互作用即,从处理器110接收请求数据以及向处理器110发送数据,且使用介质层320来与存储器130在图3中标记为“后端高容量存储器”进行交互作用。存储器130可为包含重复数据删除高速缓存135的模块的一部分,或者存储器130可与重复数据删除高速缓存135分开且通过通信路径进行通信。如图3所示,高速缓存控制器310、主机层315及介质层320可使用现场可编程门阵列fieldprogrammablegatearray,FPGA来实施。但本发明概念的实施例可支持任何所需要的实施方式,包括其他硬件设计例如,使用可编程只读存储器ProgrammableReadOnlyMemory,PROM或可编程只读存储器的任何变型例如,可擦可编程只读存储器ErasablePROM,EPROM或电可擦可编程只读存储器ElectricallyErasablePROM,EEPROM或专门设计的电路及软件设计。另外,尽管图3示出使用单个FPGA实施的高速缓存控制器310、主机层315及介质层320,但是本发明概念的实施例可支持使用多个单独的组件的实施方式,所述多个单独的组件接着使用通信路径例如,网络互连件进行连接。图4示出包括重复数据删除引擎的图1所示重复数据删除高速缓存135。在图4中,DRAM305、高速缓存控制器310、主机层315及介质层320可相同于图3所示的那些组件,且存储器控制器125可相同于图1所示存储器控制器125。但另外地,在图4中示出重复数据删除引擎405及网络互连件410。网络互连件410可在DRAM305、高速缓存控制器310及重复数据删除引擎405之间提供通信。重复数据删除引擎405可管理从DRAM305的包括进行重复数据删除的存储器例如,图3所示能重复数据删除的读取高速缓存325的部分进行的数据读取以及向所述部分进行的数据写入应注意,可直接对DRAM305的不包括进行重复数据删除的存储器的部分进行存取,而无需使用重复数据删除引擎405。如上所述,重复数据删除引擎405管理进行重复数据删除的存储器。为此,重复数据删除引擎405可支持指示重复数据删除引擎405执行重复数据删除的信号在图4中被示出为标记为“Dedup”的信号以及载明要进行存取的地址及潜在地要使用的数据的读取写入指令在图4中被示出为标记为“RDWR”的信号。但另外地,重复数据删除引擎405还可提供写入状态信号在图4中被示出为标记为“WR_Status”的信号。写入状态信号可用于指示具体的写入操作成功还是失败。以下参照图5进一步论述写入状态信号的使用。图5示出图3到图4所示高速缓存控制器310的细节。在图5中,高速缓存控制器310可包括风险管理器hazardmanager505、高速缓存命中未中检查510、命中块515、未中块520及历史存储525。一旦图1所示能重复数据删除的高速缓存135从图1所示处理器110接收到数据请求,风险管理器505便可跟踪各种命令序列例如,写入后读取read-after-write及写入后写入write-after-write来确保数据依赖性可得到正确地处置。举例来说,假如高速缓存控制器310将接收要写入存储在图3所示不能重复数据删除的写入缓冲器330中的数据的请求,且接着接收要在所述数据已被写入图1所示后端高容量存储器130之前读取所述数据的请求,则风险管理器505可指引所述读取请求从图3所示不能重复数据删除的写入缓冲器330存取数据。高速缓存命中未中检查510可判断是否可在图1所示能重复数据删除的高速缓存135中找到进行存取的具体地址。由于这种判断可通过对图3所示元数据区335进行存取来施行,因此高速缓存命中未中检查510可与读取写入信号一起发送读取请求以对图3所示元数据区335进行存取。一旦高速缓存命中未中检查510已判断出具体请求是否存取已处于图1所示能重复数据删除的高速缓存135中的地址,便可视情况将控制转交给命中块515或未中块520。命中块515可用于存取当前存储在图1所示能重复数据删除的高速缓存135中的高速缓存行;未中块520可用于从图3所示后端高容量存储器130存取数据。命中块515及未中块520可与读取写入信号一起发送读取和或写入请求以存取图3所示DRAM305中的数据:另外,未中块520还可从图4所示重复数据删除引擎405接收写入状态信号。最后,历史存储525可用于确定关于图1所示能重复数据删除的高速缓存135中的高速缓存行的存取历史的信息:举例来说,在适当的时候选择高速缓存行来进行逐出。另外,各种网络互连件例如,图5所示网络互连件可支持高速缓存控制器310的各个元件之间的通信。现在已对图3所示能重复数据删除的高速缓存135的硬件、高速缓存控制器310进行了解释,还可解释图3所示能重复数据删除的高速缓存135的操作。当图1所示能重复数据删除的高速缓存135从图1所示处理器110接收到请求时,存在两种类型的请求及两种可能的高速缓存结果:所述请求可为读取请求或写入请求,且所涉及的数据可引起高速缓存命中或高速缓存未中。因此存在总共四种可能的情形,以下论述这四种可能的情形中的每一种情形。读取请求、高速缓存命中如果图1所示处理器110发出读取请求,且数据当前存储在图3所示能重复数据删除的读取高速缓存325中,则图5所示高速缓存命中未中检查510将在对图3所示元数据区335进行读取之后确定为这种情形。由于所涉及的数据当前处于图3所示能重复数据删除的读取高速缓存325中,因此可将控制转交给图5所示命中块515,命中块515可向图4所示重复数据删除引擎405发送读取请求来请求从图3所示能重复数据删除的读取高速缓存325读取数据。图4所示重复数据删除引擎405可接着将数据返回到图5所示命中块515,命中块515可接着通过主机层315将数据返回到图1所示处理器110。读取请求、高速缓存未中如果图1所示处理器110发出读取请求,且数据当前未存储在图3所示能重复数据删除的读取高速缓存325中,则图5所示高速缓存命中未中检查510将在对图3所示元数据区335进行读取之后确定为这种情形。由于所涉及的数据当前未处于图3所示能重复数据删除的读取高速缓存325中,因此可将控制转交给未中块520,未中块520可通过图3所示介质层320从图3所示后端高容量存储器130请求数据。一旦已对数据进行了读取,图5所示未中块520便可判断在图3所示能重复数据删除的读取高速缓存325中是否存在当前未存储有效数据的高速缓存行。如果在图3所示能重复数据删除的读取高速缓存325中存在当前未存储有效数据的可用高速缓存行,则图5所示未中块520可选择这种高速缓存行来存储数据。否则,图5所示未中块520可从图3所示能重复数据删除的读取高速缓存325选择含有有效数据的高速缓存行进行逐出。这种选择过程可使用来自图5所示历史存储525的数据,且可使用任何所需要的算法来选择高速缓存行进行逐出:最近最少使用LeastRecentlyUsed,LRU或最近最不频繁使用LeastFrequentlyUsed,LFU是可用于选择高速缓存行进行逐出的众所周知的算法实例。为从图3所示能重复数据删除的读取高速缓存325逐出高速缓存行,图5所示未中块520可向图3所示DRAM305发送写入操作以写入图3所示元数据区335中来将高速缓存行标记为无效。未中块520还可向图4所示重复数据删除引擎405发送写入操作以在图3所示能重复数据删除的读取高速缓存325中重写实际数据:举例来说,通过写入足够的零来填充高速缓存行。一旦高速缓存行被逐出且数据变为无效,所述高速缓存行便能够自由接收数据,就像高速缓存行在开始时可用的情形一样。因此,图5所示未中块520可接着向图4所示重复数据删除引擎405发送写入操作以将数据早先从图1所示后端高容量存储器读取的数据写入图3所示能重复数据删除的读取高速缓存325中。图3所示高速缓存控制器310可接着通过图3所示主机层315将数据返回到图1所示处理器110。写入请求、高速缓存命中如果图1所示处理器110发出写入请求,且数据当前存储在图3所示能重复数据删除的读取高速缓存325中,则图5所示高速缓存命中未中检查510将在对图3所示元数据区335进行读取之后确定为这种情形。由于所涉及的数据当前处于图3所示能重复数据删除的读取高速缓存325中,因此可将控制转交给命中块515。由于图3所示能重复数据删除的读取高速缓存325当前存储将被替换的数据,因此图3所示能重复数据删除的读取高速缓存325的高速缓存行中的数据也应被处置。尽管可向图3所示能重复数据删除的读取高速缓存325中的高速缓存行写入新数据,然而向进行重复数据删除的存储器写入数据是相对慢的操作且在任何情况下,存储在图1所示后端高容量存储器130中的数据也需要进行更新。因此,并非向图3所示能重复数据删除的读取高速缓存325写入数据,可使图3所示能重复数据删除的读取高速缓存325中的高速缓存行无效。这样,如果数据随后由处理器110读取,则可从图3所示不能重复数据删除的写入缓冲器330如果其中仍存在新的值或从图1所示后端高容量存储器130检索新的值如以上在标记为“读取请求、高速缓存未中”的情形中所阐述。为使图3所示能重复数据删除的读取高速缓存325的高速缓存行无效,图5所示命中块515可向图3所示DRAM305发送写入操作以写入图3所示元数据区335中来将高速缓存行标记为无效。命中块515还可向图4所示重复数据删除引擎405发送写入操作以对图3所示能重复数据删除的读取高速缓存325中的实际数据进行重写:举例来说,通过写入足够的零来填充高速缓存行。一旦已从图3所示能重复数据删除的读取高速缓存325使数据无效,图5所示命中块515便可将数据写入图3所示不能重复数据删除的写入缓冲器330。由于图3所示不能重复数据删除的写入缓冲器330不使用进行重复数据删除的存储器,因此将数据写入图3所示不能重复数据删除的写入缓冲器330比将数据写入图3所示能重复数据删除的读取高速缓存325快。随后,在适当的时候,可通过图3所示介质层320将数据从图3所示不能重复数据删除的写入缓冲器330冲刷到图3所示后端高容量存储器130:举例来说,如果图3所示不能重复数据删除的写入缓冲器330已变满的话。写入请求、高速缓存未中如果图1所示处理器110发出写入请求,且数据当前未存储在图3所示能重复数据删除的读取高速缓存325中,则图5所示高速缓存命中未中检查510将在对图3所示元数据区335进行读取之后确定为这种情形。由于所涉及的数据当前未处于图3所示能重复数据删除的读取高速缓存325中,因此控制可转交给未中块520。图5所示未中块520可将数据写入图3所示不能重复数据删除的写入缓冲器330。随后,在适当的时候,可通过图3所示介质层320将数据从图3所示不能重复数据删除的写入缓冲器330冲刷到图3所示后端高容量存储器130:同样,举例来说,如果图3所示不能重复数据删除的写入缓冲器330已变满的话。以上论述示出可如何在高速缓存中使用能重复数据删除的存储器来改善总体性能。但使用能重复数据删除的存储器可引入另一种问题,具体来说可引起“读取请求、高速缓存未中”以及“写入请求、高速缓存命中”的情形。应注意,在这两种情形中,可将数据写入图3所示能重复数据删除的读取高速缓存325。所述问题源自以下事实:由于图3所示能重复数据删除的读取高速缓存325模拟比其物理容量大的容量。即使高速缓存行可为可用的,图3所示能重复数据删除的读取高速缓存325的物理内存也可为满的,在这种情形中数据可能无法成功写入图3所示能重复数据删除的读取高速缓存325。另外,使图3所示能重复数据删除的读取高速缓存325中的高速缓存行无效可能无法释放任何物理内存。举例来说,如果被选择进行无效的高速缓存行参考也由另一个高速缓存行参考的数据,则使所选择的高速缓存行无效不会使数据实际上从图3所示能重复数据删除的读取高速缓存325的物理内存释放。这一问题可被阐述为缺乏写入保证。一种解决方案是简单地接受向图3所示能重复数据删除的读取高速缓存325进行的写入可能失败。这种解决方案至少在“读取请求、高速缓存未中”的情形中是合理的:在最差情形中,至少在数据可实际上在图3所示能重复数据删除的读取高速缓存325中被高速缓存之前,数据实际上不会被高速缓存,从而需要从图1所示后端高容量存储器130进行存取至少在数据可实际上在图3所示能重复数据删除的读取高速缓存325中被高速缓存之前。且即使在“写入请求、高速缓存命中”的情形中,所述解决方案在存在使存取相同数据的所有高速缓存行无效的方式时是可接受的以避免对其他高速缓存行进行的存取对图3所示能重复数据删除的读取高速缓存325的过期数据进行存取。但仍存在其他解决方案。另一种解决方案是使多个高速缓存行无效,直到数据可被成功写入图3所示能重复数据删除的读取高速缓存325为止或直到已进行了阈值次数的重试为止。如果在尝试向图3所示能重复数据删除的读取高速缓存325写入数据之后,图4所示重复数据删除引擎405在写入状态信号中返回NAK,则图3所示高速缓存控制器310可通过图5所示命中块515或图5所示未中块520选择图3所示能重复数据删除的读取高速缓存325的高速缓存行来使其无效。在使所选择的高速缓存行无效之后,图3所示高速缓存控制器310可同样,通过图5所示命中块515或图5所示未中块520重试向图3所示能重复数据删除的读取高速缓存325进行原始写入。这一过程可根据需要重复进行,直到对图3所示能重复数据删除的读取高速缓存325进行的写入成功由写入状态信号上的ACK指示为止或直到已发生阈值次数的重试为止。图6A到图6B示出根据本发明概念实施例的图1所示重复数据删除高速缓存135处理写入请求的示例性流程的流程图。在图6A中,在方块605处,图3所示高速缓存控制器310可从图1所示处理器110接收写入请求。在方块610处,图5所示高速缓存命中未中检查510可判断图3所示能重复数据删除的读取高速缓存325是否包括含有将被重写的数据的高速缓存行。如果不含有此种高速缓存行,则在方块615处,图5所示未中块520可将来自写入请求的数据存储在图3所示不能重复数据删除的写入缓冲器330中,在方块620处,图3所示高速缓存控制器310可将数据从图3所示不能重复数据删除的写入缓冲器330冲刷到图1所示后端高容量存储器130,且在方块625处,图3所示高速缓存控制器310可将数据从图3所示不能重复数据删除的写入缓冲器330擦除。另一方面,在方块610处,如果图3所示能重复数据删除的读取高速缓存325不包括含有将通过写入请求进行重写的数据的高速缓存行,则在方块630处图6B,图5所示命中块515可使所述高速缓存行无效通过在图3所示元数据区335中将高速缓存行标记为无效以及通过图4所示重复数据删除引擎405向高速缓存行写入零。在方块635处,图5所示命中块515可判断图4所示重复数据删除引擎405是以ACK信号还是以NAK信号作出响应。如果图4所示重复数据删除引擎405返回ACK信号,则处理过程可继续进行图6A所示方块615来完成写入请求。否则,在方块640处,图5所示命中块515可判断是否已达到最大次数的重试。如果尚未达到最大次数的重试,则在方块645处,图5所示命中块515可选择另一个高速缓存行来使其无效,且处理过程可返回方块630来使重新选择的高速缓存行无效。否则,在方块650处,命中块515及图3所示高速缓存控制器310可报告从图3所示能重复数据删除的读取高速缓存325擦除数据存在问题,此后处理过程可结束。图7示出根据本发明概念实施例的图1所示重复数据删除高速缓存135使图3所示能重复数据删除的读取高速缓存325中的高速缓存行无效的示例性流程的流程图。在图7中,在方块705处,图3所示高速缓存控制器310可在图3所示元数据区335中将高速缓存行标记为无效通过向图3所示元数据区335写入适当的值。在方块710处,图3所示高速缓存控制器310可向图4所示重复数据删除引擎405发送写入请求以向所涉及的高速缓存行的数据中写入零,从而确保过期数据无法占据DRAM空间。图8A到图8C示出根据本发明概念实施例的图1所示重复数据删除高速缓存135处理读取请求的示例性流程的流程图。在图8A中,在方块805处,图3所示高速缓存控制器310可接收要从图1所示后端高容量存储器130读取数据或者从图3所示DRAM305读取数据,如果其中存储有数据的话的读取请求。在方块810处,图5所示高速缓存命中未中检查510可检查是否在图3所示能重复数据删除的读取高速缓存325中找到所请求的数据。如果在图3所示能重复数据删除的读取高速缓存325中的高速缓存行中找到所请求的数据,则在方块815处,图5所示命中块515可向图4所示重复数据删除引擎405发送读取请求以从图3所示能重复数据删除的读取高速缓存325中的高速缓存行读取所请求的数据,且在方块820处,图3所示高速缓存控制器310可将所请求的数据发送回图1所示处理器110,此后处理过程结束。如果在图3所示能重复数据删除的读取高速缓存325中或不能重复数据删除的写入缓冲器330中的高速缓存行中均未找到所请求的数据,则在方块825处,图5所示未中块520可从图1所示后端高容量存储器130读取数据。在方块830处,图5所示未中块520可选择图3所示能重复数据删除的读取高速缓存325的高速缓存行来存储数据。应注意,所选择的高速缓存行可为当前未存储有效数据的高速缓存行、或存储有效数据的高速缓存行且因此需要首先使其无效。在方块835处图8B,图5所示未中块520判断所选择的高速缓存行是否含有有效数据。如果所选择的高速缓存行含有有效数据,则在方块840处,图5所示未中块520可使用以上在图7中概述的示例性流程来使所述高速缓存行无效。接着,一旦知晓所述高速缓存行不含有有效数据,则在方块845处,图5所示未中块520可向图4所示重复数据删除引擎405发送写入请求来将所请求的数据写入图3所示能重复数据删除的读取高速缓存325中的所选择的高速缓存行。也就是说,在方块845处,图5所示未中块520可将所请求的数据提供到图4所示重复数据删除引擎405来尝试将所请求的数据写入图3所示能重复数据删除的读取高速缓存325中的所选择的高速缓存行。在方块850处,图5所示未中块520可判断图4所示重复数据删除引擎405响应于写入请求返回的是ACK还是NAK。应注意,无论在方块835处所选择的高速缓存行是否含有有效数据,图4所示重复数据删除引擎405均可返回NAK,这是因为即使在利用空闲的高速缓存行时图3所示能重复数据删除的读取高速缓存325可能仍会达到其最大物理容量。如果图4所示重复数据删除引擎405返回ACK信号,则写入成功:在方块855处,图5所示未中块520可在图3所示元数据区335中将所述高速缓存行标记为含有有效数据,且处理过程可继续进行图8A所示方块820来将所请求的数据发送回图1所示处理器110。另一方面,如果图4所示重复数据删除引擎405返回NAK信号,则图4所示重复数据删除引擎405不能够将数据写入图3所示能重复数据删除的读取高速缓存325中的高速缓存行。在这种情形中,在方块860处图8C,图5所示未中块520可判断是否已达到最大次数的重试。如果尚未达到最大次数的重试,则在方块865处,图5所示未中块520可选择另一个高速缓存行来使其无效,且处理过程可返回方块840来使重新选择的高速缓存行无效。否则,在方块870处,未中块520及图3所示高速缓存控制器310可报告将数据写入图3所示能重复数据删除的读取高速缓存325存在问题,此后处理过程可结束。如以上参照图3所论述,在本发明概念的一些实施例中,图3所示不能重复数据删除的写入缓冲器330还可充当传统的高速缓存,位于图3所示能重复数据删除的读取高速缓存325旁边。在本发明概念的这种实施例中,提到检查图3所示能重复数据删除的读取高速缓存325中是否具有所请求的高速缓存行或存取所述所请求的高速缓存行可被理解为相似地涉及对图3所示不能重复数据删除的写入缓冲器330进行检查或存取。举例来说,在图8A中,可将方块810修改成检查图3所示能重复数据删除的读取高速缓存325以及图3所示不能重复数据删除的写入缓冲器330中是否具有包含数据的高速缓存行,且可将方块815修改成:根据可在何处实际上找到数据而定,从图3所示能重复数据删除的读取高速缓存325中或图3所示不能重复数据删除的写入缓冲器330中读取数据。相似地,如果在图8C所示方块870中,数据不能够被成功写入图3所示能重复数据删除的读取高速缓存325,则作为替代,可将数据写入图3所示不能重复数据删除的写入缓冲器330。或者,可将示例性流程图修改成从图3所示能重复数据删除的读取高速缓存325或图3所示不能重复数据删除的写入缓冲器330选择可被写入数据的高速缓存行,而非尝试首先将数据写入图3所示能重复数据删除的读取高速缓存325中的高速缓存行中。在图6A到图8C中,示出了本发明概念的一些实施例。但所属领域中的技术人员将认识到,通过改变所述方块的次序、通过省略方块、或通过包括图式中所未示出的链路,本发明概念还可具有其他实施例。所述流程图的所有这种变型均应被视为本发明概念的实施例,而无论是否明确地如此阐述。本发明概念的实施例与现有技术相比提供几个技术优点。首先,在图1所示重复数据删除高速缓存135中使用能重复数据删除的存储器会避免在图3所示高速缓存DRAM305中存储相同数据的多个副本,从而使得能够在相同物理量的存储器中存储更多唯一的数据或作为另外一种选择,使用较小的存储器占用量来存储相同量的数据。举例来说,如果图3所示能重复数据删除的读取高速缓存325包括4GB的内存其预期的重复数据删除比率为2,则图3所示能重复数据删除的读取高速缓存325在理论上可存储与在8GB的不能重复数据删除的高速缓存内存中能够存储的数据一样多的唯一数据。第二,通过使用图3所示不能重复数据删除的写入缓冲器330,对于其中应用正在写入数据而不仅仅是读取数据的情况而言会避免在对能重复数据删除的存储器进行的写入中所固有的延迟。第三,通过在使图3所示能重复数据删除的读取高速缓存325中的高速缓存行无效之后支持写入重试,会减少与无法保证对图3所示能重复数据删除的读取高速缓存325进行的写入有关的问题且尽管仍存在甚至在几次高速缓存行无效之后对图3所示能重复数据删除的读取高速缓存325的写入可能仍不会成功的可能性,但是发生这种情况的可能性相当低。以下论述旨在提供对可在其中实施本发明概念某些方面的一个或多个适合的机器的简短大体说明。所述一个或多个机器可至少部分地通过以下来控制:来自例如键盘、鼠标等传统输入器件的输入;以及自另一机器接收到的指令、与虚拟现实virtualreality,VR环境、生物特征反馈biometricfeedback、或其他输入信号的交互作用。本文中所用用语“机器machine”旨在广泛地囊括单一机器、虚拟机器、或由以通信方式耦合的一起运行的机器、虚拟机器、或器件形成的系统。示例性机器包括:计算器件,例如个人计算机、工作站、服务器、便携式计算机、手持式器件、电话、平板计算机tablet等;以及运输器件,例如私人或公共运输例如汽车、火车、计程车等。所述一个或多个机器可包括嵌入式控制器,例如可编程或不可编程逻辑器件或阵列、应用专用集成电路ApplicationSpecificIntegratedCircuit,ASIC、嵌入式计算机、智能卡等。所述一个或多个机器可利用连接至一个或多个远程机器例如通过网络接口、调制解调器、或其他通信耦合的一个或多个连接。机器可采用例如内联网intranet、互联网、局域网、广域网等实体网络和或逻辑网络的方式进行互连。所属领域中的技术人员将理解,网络通信可利用各种有线和或无线短距离或长距离载体及协议,所述载体及协议包括射频radiofrequency,RF、卫星、微波、电气及电子工程师学会InstituteofElectricalandElectronicsEngineers,IEEE802.11、光学、红外、缆线、激光等。可通过参照或结合相关联数据来阐述本发明概念的实施例,所述相关联数据包括当由机器存取时使得所述机器执行任务或定义抽象数据类型或低层阶硬件上下文的功能、流程、数据结构、应用程序等。相关联数据可存储在例如易失性和或非易失性存储器例如,随机存取存储器randomaccessmemory,RAM、只读存储器readonlymemory,ROM等中,或存储于包括硬驱动器、软盘、光学存储、磁带、闪存存储器、记忆棒memorystick、数字视频盘、生物存储等其他存储器件及其相关联存储介质中。相关联数据可采用数据包、串行数据、并行数据、传播信号等形式通过包括实体网络和或逻辑网络在内的传输环境来递送,且可以压缩或加密格式使用。相关联数据可用于分布式环境中,且可在本地和或远程存储以供机器存取。本发明概念的实施例可包括包含可由一个或多个处理器执行的指令的有形的非暂时性机器可读介质machine-readablemedium,所述指令包括用于执行本文所述本发明概念的要素的指令。上述方法的各种操作可通过能够执行所述操作的任何适合的手段例如,各种硬件组件和或软件组件、电路和或模块来执行。软件可包括用于实施逻辑功能的可执行指令的有序列表,且可被收录在任何“处理器可读介质”中以由指令执行系统、装置或器件例如,单核处理器或多核处理器或者含有处理器的系统使用或与指令执行系统、装置或器件结合使用。结合本文中所公开的实施例阐述的方法或算法的方块或步骤以及功能可直接以硬件实施、以由处理器执行的软件模块实施或者以两者的组合来实施。如果以软件实施,则可将功能作为一个或多个指令或代码存储在有形的非暂时性计算机可读介质上或通过有形的非暂时性计算机可读介质传送。软件模块可驻留在随机存取存储器RAM、闪存存储器、只读存储器ROM、电可编程只读存储器EPROM、电可擦可编程只读存储器EEPROM、寄存器、硬盘、可移式盘removabledisk、压缩盘只读存储器compactdiskROM,CDROM或所属领域中所知的任何其他形式的存储介质中。已参照所示实施例阐述并示出了本发明概念的原理,应认识到,所示实施例可在排列及细节上加以修改而并不背离此类原理,且可以任何所需方式加以组合。并且,尽管以上论述着重于具体实施例,然而预期存在其他配置。具体来说,尽管本文中使用例如“根据本发明概念的实施例”等表达,然而这些短语意在笼统地提及实施例可能性,而并非旨在将本发明概念限制为具体实施例配置。本文所用的这些用语可提及相同或不同的实施例,这些相同或不同的实施例可组合成其他实施例。前述说明性实施例不应被视为限制本发明概念。尽管已阐述了几个实施例,然而所属领域中的技术人员将易于理解,可对这些实施例作出许多修改,而此并不实质上背离本公开的新颖教示内容及优点。因此,所有这种修改均旨在包含于由权利要求书所界定的本发明概念的范围内。本发明概念的实施例可扩展到以下声明,但并不仅限于此:声明1、本发明概念的实施例包括一种能重复数据删除的高速缓存,所述能重复数据删除的高速缓存包括:高速缓存存储器,所述高速缓存存储器包括能重复数据删除的读取高速缓存及不能重复数据删除的写入缓冲器;重复数据删除引擎,使用所述能重复数据删除的读取高速缓存来管理数据读取及写入,所述重复数据删除引擎能够操作以发送写入状态信号,所述写入状态信号指示对所述能重复数据删除的读取高速缓存的写入请求是否成功;以及高速缓存控制器,包括:高速缓存命中未中检查逻辑,检查是否能够在所述能重复数据删除的读取高速缓存中找到请求中的地址;命中块,当所述高速缓存命中未中检查逻辑指示能够在所述能重复数据删除的读取高速缓存中找到所述地址时,从所述高速缓存存储器存取第一数据;未中块,当所述高速缓存命中未中检查逻辑指示不能够在所述能重复数据删除的读取高速缓存中找到所述地址时,从后端高容量存储器存取第二数据;以及历史存储,将与对所述第一数据的存取有关的信息存储在所述能重复数据删除的读取高速缓存中。声明2、本发明概念的实施例包括根据声明1所述的能重复数据删除的高速缓存,其中所述高速缓存控制器还包括风险管理器以管理所述能重复数据删除的读取高速缓存及不能重复数据删除的写入缓冲器中的数据依赖性。声明3、本发明概念的实施例包括根据声明1所述的能重复数据删除的高速缓存,其中所述能重复数据删除的读取高速缓存模拟存储比在物理上配备在所述能重复数据删除的读取高速缓存中的高速缓存行多的高速缓存行。声明4、本发明概念的实施例包括根据声明1所述的能重复数据删除的高速缓存,其中所述高速缓存存储器还包括元数据区,所述元数据区存储与所述能重复数据删除的读取高速缓存中的高速缓存行有关的信息。声明5、本发明概念的实施例包括根据声明1所述的能重复数据删除的高速缓存,其中:所述高速缓存控制器能够操作以从处理器接收要写入数据的第一写入请求并将所述数据存储在所述不能重复数据删除的写入缓冲器中;以及所述命中块能够操作以在所述高速缓存行被所述第一写入请求修改时向所述重复数据删除引擎发送第二写入请求以使所述能重复数据删除的读取高速缓存中的高速缓存行无效。声明6、本发明概念的实施例包括根据权利要求5所述的能重复数据删除的高速缓存,其中所述第二写入请求包括要向所述能重复数据删除的读取高速缓存中的所述高速缓存行写入零的请求。声明7、本发明概念的实施例包括根据声明5所述的能重复数据删除的高速缓存,其中所述高速缓存控制器还能够操作以在所述高速缓存存储器的元数据区中将所述高速缓存行标记为无效。声明8、本发明概念的实施例包括根据声明5所述的能重复数据删除的高速缓存,其中所述命中块还能够操作以响应于所述第二写入请求从所述重复数据删除引擎接收否定应答信号,从所述能重复数据删除的读取高速缓存逐出第二高速缓存行,并在从所述能重复数据删除的读取高速缓存逐出所述第二高速缓存行之后向所述重复数据删除引擎重新发送所述第二写入请求。声明9、本发明概念的实施例包括根据声明1所述的能重复数据删除的高速缓存,其中:所述高速缓存控制器能够操作以从处理器接收读取请求以读取数据并将所述数据发送到所述处理器;以及所述未中块能够操作以从所述后端高容量存储器检索所述数据并向所述重复数据删除引擎发送写入请求以将所述数据写入所述能重复数据删除的读取高速缓存中。声明10、本发明概念的实施例包括根据声明9所述的能重复数据删除的高速缓存,其中所述未中块还能够操作以响应于所述写入请求而从所述重复数据删除引擎接收否定应答信号,从所述能重复数据删除的读取高速缓存逐出高速缓存行,并在从所述能重复数据删除的读取高速缓存逐出所述高速缓存行之后向所述重复数据删除引擎重新发送所述写入请求。声明11、本发明概念的实施例包括一种方法,所述方法包括:接收要写入数据的写入请求;确定所述数据位于能重复数据删除的读取高速缓存中的高速缓存行中,所述能重复数据删除的读取高速缓存是高速缓存存储器中的第一区,所述高速缓存存储器包括不能重复数据删除的写入缓冲器作为第二区;使所述能重复数据删除的读取高速缓存中的所述高速缓存行无效;以及将所述数据存储在所述不能重复数据删除的写入缓冲器中。声明12、本发明概念的实施例包括根据声明11所述的方法,所述方法还包括:将所述数据从所述不能重复数据删除的写入缓冲器冲刷到后台高容量存储器;以及将所述数据从所述不能重复数据删除的写入缓冲器擦除。声明13、本发明概念的实施例包括根据声明11所述的方法,其中使所述能重复数据删除的读取高速缓存中的所述高速缓存行无效包括:在所述高速缓存存储器中的元数据区中将所述高速缓存行标记为无效;以及通过重复数据删除引擎向所述高速缓存行写入零。声明14、本发明概念的实施例包括根据声明13所述的方法,其中使所述能重复数据删除的读取高速缓存中的所述高速缓存行无效还包括在写入状态信号上从所述重复数据删除引擎接收确定应答。声明15、本发明概念的实施例包括根据声明13所述的方法,其中使所述能重复数据删除的读取高速缓存中的所述高速缓存行无效还包括:在写入状态信号上从所述重复数据删除引擎接收否定应答;从所述能重复数据删除的读取高速缓存选择要逐出的第二高速缓存行;使所述第二高速缓存行无效;以及通过所述重复数据删除引擎向所述第二高速缓存行写入零。声明16、本发明概念的实施例包括根据声明11所述的方法,其中将所述数据存储在所述不能重复数据删除的写入缓冲器中包括:无论所述数据是否处于所述能重复数据删除的读取高速缓存中的所述高速缓存行中,均将所述数据存储在所述不能重复数据删除的写入缓冲器中。声明17、本发明概念的实施例包括一种方法,所述方法包括:接收要读取数据的读取请求;确定所述数据不处于能重复数据删除的读取高速缓存中的多个高速缓存行中,所述能重复数据删除的读取高速缓存是高速缓存存储器中的第一区,所述高速缓存存储器包括不能重复数据删除的写入缓冲器作为第二区;从后端高容量存储器读取所述数据;选择所述能重复数据删除的读取高速缓存中的第一高速缓存行;将所述数据提供到重复数据删除引擎以尝试将所述数据写入所述第一高速缓存行;以及响应于所述读取请求,发送所述数据。声明18、本发明概念的实施例包括根据声明17所述的方法,其中选择所述能重复数据删除的读取高速缓存中的第一高速缓存行包括:选择所述能重复数据删除的读取高速缓存中当前未存储数据的所述第一高速缓存行。声明19、本发明概念的实施例包括根据声明17所述的方法,其中选择所述能重复数据删除的读取高速缓存中的第一高速缓存行包括:响应于来自所述高速缓存存储器中的元数据区的能重复数据删除的读取高速缓存元数据以及历史数据,选择所述能重复数据删除的读取高速缓存中当前存储有效数据的所述第一高速缓存行进行逐出;以及使所述第一高速缓存行无效。声明20、本发明概念的实施例包括根据声明19所述的方法,其中使所述第一高速缓存行无效包括:在所述高速缓存存储器中的所述元数据区中将所述第一高速缓存行标记为无效;以及通过所述重复数据删除引擎向所述第一高速缓存行写入零。声明21、本发明概念的实施例包括根据声明17所述的方法,其中将所述数据提供到重复数据删除引擎以尝试将所述数据写入所述第一高速缓存行包括:在写入状态信号上从所述重复数据删除引擎接收确定应答。声明22、本发明概念的实施例包括根据声明17所述的方法,其中将所述数据提供到重复数据删除引擎以尝试将所述数据写入所述第一高速缓存行包括:在写入状态信号上从所述重复数据删除引擎接收否定应答;响应于来自所述高速缓存存储器中的元数据区的能重复数据删除的读取高速缓存元数据及历史数据,选择所述能重复数据删除的读取高速缓存的当前存储有效数据的第二高速缓存行进行逐出;使所述第二高速缓存行无效;以及将所述数据提供到所述重复数据删除引擎以尝试将所述数据写入所选择的所述第二高速缓存行。声明23、本发明概念的实施例包括一种制品,所述制品包括非暂时性存储介质,所述非暂时性存储介质上存储有指令,所述指令在由机器执行时引起以下操作:接收要写入数据的写入请求;确定所述数据位于能重复数据删除的读取高速缓存中的高速缓存行中,所述能重复数据删除的读取高速缓存是高速缓存存储器中的第一区,所述高速缓存存储器包括不能重复数据删除的写入缓冲器作为第二区;使所述能重复数据删除的读取高速缓存中的所述高速缓存行无效;以及将所述数据存储在所述不能重复数据删除的写入缓冲器中。声明24、本发明概念的实施例包括根据声明23所述的制品,所述非暂时性存储介质上存储有另一些指令,所述另一些指令在由所述机器执行时引起以下操作:将所述数据从所述不能重复数据删除的写入缓冲器冲刷到后台高容量存储器;以及将所述数据从所述不能重复数据删除的写入缓冲器擦除。声明25、本发明概念的实施例包括根据声明23所述的制品,其中使所述能重复数据删除的读取高速缓存中的所述高速缓存行无效包括:在所述高速缓存存储器中的元数据区中将所述高速缓存行标记为无效;以及通过重复数据删除引擎向所述高速缓存行写入零。声明26、本发明概念的实施例包括根据声明25所述的方法,其中使所述能重复数据删除的读取高速缓存中的所述高速缓存行无效还包括在写入状态信号上从所述重复数据删除引擎接收确定应答。声明27、本发明概念的实施例包括根据声明25所述的制品,其中使所述能重复数据删除的读取高速缓存中的所述高速缓存行无效还包括:在写入状态信号上从所述重复数据删除引擎接收否定应答;从所述能重复数据删除的读取高速缓存选择要逐出的第二高速缓存行;使所述第二高速缓存行无效;以及通过所述重复数据删除引擎向所述第二高速缓存行写入零。声明28、本发明概念的实施例包括根据声明23所述的制品,其中将所述数据存储在所述不能重复数据删除的写入缓冲器中包括:无论所述数据是否处于所述能重复数据删除的读取高速缓存中的所述高速缓存行中,均将所述数据存储在所述不能重复数据删除的写入缓冲器中。声明29、本发明概念的实施例包括一种制品,所述制品包括非暂时性存储介质,所述非暂时性存储介质上存储有指令,所述指令在由机器执行时引起以下操作:接收要读取数据的读取请求;确定所述数据不处于能重复数据删除的读取高速缓存中的多个高速缓存行中,所述能重复数据删除的读取高速缓存是高速缓存存储器中的第一区,所述高速缓存存储器包括不能重复数据删除的写入缓冲器作为第二区;从后端高容量存储器读取所述数据;选择所述能重复数据删除的读取高速缓存中的第一高速缓存行;将所述数据提供到重复数据删除引擎以尝试将所述数据写入所述第一高速缓存行;以及响应于所述读取请求,发送所述数据。声明30、本发明概念的实施例包括根据声明29所述的制品,其中选择所述能重复数据删除的读取高速缓存中的第一高速缓存行包括:选择所述能重复数据删除的读取高速缓存中当前未存储数据的所述第一高速缓存行。声明31、本发明概念的实施例包括根据声明29所述的制品,其中选择所述能重复数据删除的读取高速缓存中的第一高速缓存行包括:响应于来自所述高速缓存存储器中的元数据区的能重复数据删除的读取高速缓存元数据以及历史数据,选择所述能重复数据删除的读取高速缓存中当前存储有效数据的所述第一高速缓存行进行逐出;以及使所述第一高速缓存行无效。声明32、本发明概念的实施例包括根据声明31所述的制品,其中使所述第一高速缓存行无效包括:在所述高速缓存存储器中的所述元数据区中将所述第一高速缓存行标记为无效;以及通过所述重复数据删除引擎向所述第一高速缓存行写入零。声明33、本发明概念的实施例包括根据声明29所述的制品,其中将所述数据提供到重复数据删除引擎以尝试将所述数据写入所述第一高速缓存行包括:在写入状态信号上从所述重复数据删除引擎接收确定应答。声明34、本发明概念的实施例包括根据声明29所述的制品,其中将所述数据提供到重复数据删除引擎以尝试将所述数据写入所述第一高速缓存行包括:在写入状态信号上从所述重复数据删除引擎接收否定应答;响应于来自所述高速缓存存储器中的元数据区的能重复数据删除的读取高速缓存元数据及历史数据,选择所述能重复数据删除的读取高速缓存的当前存储有效数据的第二高速缓存行进行逐出;使所述第二高速缓存行无效;以及将所述数据提供到所述重复数据删除引擎以尝试将所述数据写入所选择的所述第二高速缓存行。因此,考虑到本文所述实施例的各种变更,此详细描述及随附材料旨在仅为说明性的,而不应视为对本发明概念的范围进行限制。因此,作为本发明概念所主张的权利要求范围是可落于以下权利要求书及其等效形式的范围及精神内的所有这种修改。

权利要求:1.一种能重复数据删除的高速缓存,包括:高速缓存存储器,所述高速缓存存储器包括能重复数据删除的读取高速缓存及不能重复数据删除的写入缓冲器;重复数据删除引擎,使用所述能重复数据删除的读取高速缓存来管理数据读取及写入,所述重复数据删除引擎能够操作以发送写入状态信号,所述写入状态信号指示对所述能重复数据删除的读取高速缓存的写入请求是否成功;以及高速缓存控制器,包括:高速缓存命中未中检查逻辑,检查是否能够在所述能重复数据删除的读取高速缓存中找到请求中的地址;命中块,当所述高速缓存命中未中检查逻辑指示能够在所述能重复数据删除的读取高速缓存中找到所述地址时,从所述高速缓存存储器存取第一数据;未中块,当所述高速缓存命中未中检查逻辑指示不能够在所述能重复数据删除的读取高速缓存中找到所述地址时,从后端高容量存储器存取第二数据;以及历史存储,将与对所述第一数据的存取有关的信息存储在所述能重复数据删除的读取高速缓存中。2.根据权利要求1所述的能重复数据删除的高速缓存,其中所述能重复数据删除的读取高速缓存模拟存储比在物理上配备在所述能重复数据删除的读取高速缓存中的高速缓存行多的高速缓存行。3.根据权利要求1所述的能重复数据删除的高速缓存,其中所述高速缓存存储器还包括元数据区,所述元数据区存储与所述能重复数据删除的读取高速缓存中的高速缓存行有关的信息。4.根据权利要求1所述的能重复数据删除的高速缓存,其中:所述高速缓存控制器能够操作以从处理器接收要写入数据的第一写入请求并将所述数据存储在所述不能重复数据删除的写入缓冲器中;以及所述命中块能够操作以在高速缓存行被所述第一写入请求修改时向所述重复数据删除引擎发送第二写入请求以使所述能重复数据删除的读取高速缓存中的所述高速缓存行无效。5.根据权利要求4所述的能重复数据删除的高速缓存,其中所述第二写入请求包括要向所述能重复数据删除的读取高速缓存中的所述高速缓存行写入零的请求。6.根据权利要求4所述的能重复数据删除的高速缓存,其中所述高速缓存控制器还能够操作以在所述高速缓存存储器的元数据区中将所述高速缓存行标记为无效。7.根据权利要求4所述的能重复数据删除的高速缓存,其中所述命中块还能够操作以响应于所述第二写入请求从所述重复数据删除引擎接收否定应答信号,从所述能重复数据删除的读取高速缓存逐出第二高速缓存行,并在从所述能重复数据删除的读取高速缓存逐出所述第二高速缓存行之后向所述重复数据删除引擎重新发送所述第二写入请求。8.根据权利要求1所述的能重复数据删除的高速缓存,其中:所述高速缓存控制器能够操作以从处理器接收读取请求以读取数据并将所述数据发送到所述处理器;以及所述未中块能够操作以从所述后端高容量存储器检索所述数据并向所述重复数据删除引擎发送写入请求以将所述数据写入所述能重复数据删除的读取高速缓存中。9.根据权利要求8所述的能重复数据删除的高速缓存,其中所述未中块还能够操作以响应于所述写入请求而从所述重复数据删除引擎接收否定应答信号,从所述能重复数据删除的读取高速缓存逐出高速缓存行,并在从所述能重复数据删除的读取高速缓存逐出所述高速缓存行之后向所述重复数据删除引擎重新发送所述写入请求。10.一种能重复数据删除的高速缓存的方法,包括:接收要写入数据的写入请求;确定所述数据位于能重复数据删除的读取高速缓存中的高速缓存行中,所述能重复数据删除的读取高速缓存是高速缓存存储器中的第一区,所述高速缓存存储器包括不能重复数据删除的写入缓冲器作为第二区;使所述能重复数据删除的读取高速缓存中的所述高速缓存行无效;以及将所述数据存储在所述不能重复数据删除的写入缓冲器中。11.根据权利要求10所述的方法,其中使所述能重复数据删除的读取高速缓存中的所述高速缓存行无效包括:在所述高速缓存存储器中的元数据区中将所述高速缓存行标记为无效;以及通过重复数据删除引擎向所述高速缓存行写入零。12.根据权利要求11所述的方法,其中使所述能重复数据删除的读取高速缓存中的所述高速缓存行无效还包括在写入状态信号上从所述重复数据删除引擎接收确定应答。13.根据权利要求11所述的方法,其中使所述能重复数据删除的读取高速缓存中的所述高速缓存行无效还包括:在写入状态信号上从所述重复数据删除引擎接收否定应答;从所述能重复数据删除的读取高速缓存选择要逐出的第二高速缓存行;使所述第二高速缓存行无效;以及通过所述重复数据删除引擎向所述第二高速缓存行写入零。14.根据权利要求10所述的方法,其中将所述数据存储在所述不能重复数据删除的写入缓冲器中包括:无论所述数据是否处于所述能重复数据删除的读取高速缓存中的所述高速缓存行中,均将所述数据存储在所述不能重复数据删除的写入缓冲器中。15.一种能重复数据删除的高速缓存的方法,包括:接收要读取数据的读取请求;确定所述数据不处于能重复数据删除的读取高速缓存中的多个高速缓存行中,所述能重复数据删除的读取高速缓存是高速缓存存储器中的第一区,所述高速缓存存储器包括不能重复数据删除的写入缓冲器作为第二区;从后端高容量存储器读取所述数据;选择所述能重复数据删除的读取高速缓存中的第一高速缓存行;将所述数据提供到重复数据删除引擎以尝试将所述数据写入所述第一高速缓存行;以及响应于所述读取请求,发送所述数据。16.根据权利要求15所述的方法,其中选择所述能重复数据删除的读取高速缓存中的第一高速缓存行包括:选择所述能重复数据删除的读取高速缓存中当前未存储数据的所述第一高速缓存行。17.根据权利要求15所述的方法,其中选择所述能重复数据删除的读取高速缓存中的第一高速缓存行包括:响应于来自所述高速缓存存储器中的元数据区的能重复数据删除的读取高速缓存元数据以及历史数据,选择所述能重复数据删除的读取高速缓存中当前存储有效数据的所述第一高速缓存行进行逐出;以及使所述第一高速缓存行无效。18.根据权利要求17所述的方法,其中使所述第一高速缓存行无效包括:在所述高速缓存存储器中的所述元数据区中将所述第一高速缓存行标记为无效;以及通过所述重复数据删除引擎向所述第一高速缓存行写入零。19.根据权利要求15所述的方法,其中将所述数据提供到重复数据删除引擎以尝试将所述数据写入所述第一高速缓存行包括:在写入状态信号上从所述重复数据删除引擎接收确定应答。20.根据权利要求15所述的方法,其中将所述数据提供到重复数据删除引擎以尝试将所述数据写入所述第一高速缓存行包括:在写入状态信号上从所述重复数据删除引擎接收否定应答;响应于来自所述高速缓存存储器中的元数据区的能重复数据删除的读取高速缓存元数据及历史数据,选择所述能重复数据删除的读取高速缓存的当前存储有效数据的第二高速缓存行进行逐出;使所述第二高速缓存行无效;以及将所述数据提供到所述重复数据删除引擎以尝试将所述数据写入所选择的所述第二高速缓存行。

百度查询: 三星电子株式会社 能重复数据删除的高速缓存的机器及其方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。