当前位置: 首页 > 专利查询>英特尔公司专利>正文

用于在固态驱动器中实行高速缓存操作的装置、计算机程序产品和方法制造方法及图纸

技术编号:19240272 阅读:17 留言:0更新日期:2018-10-24 03:52
提供了用于在固态驱动器中实行高速缓存操作的装置、计算机程序产品和方法。高速缓存存储器确定从主机系统接收的用于主存储命名空间中的所请求的存储地址的数据是否存储在根据高速缓存映射方案由所请求的存储地址所映射到的高速缓存存储器命名空间中的地址处。主存储装置中的存储地址中的多个存储地址映射到高速缓存存储器命名空间中的一个地址。响应于确定用于所请求的存储地址的数据存储在高速缓存存储器命名空间中,高速缓存存储器向主机系统返回存储在高速缓存存储器命名空间中的所请求地址处的数据。

【技术实现步骤摘要】
用于在固态驱动器中实行高速缓存操作的装置、计算机程序产品和方法
本文中描述的实施例一般涉及用于在固态驱动器中实行高速缓存操作的装置、计算机程序产品和方法。
技术介绍
主机侧高速缓存管理操作可能消耗大量主机资源来确定将数据置于更快速存储设备中的何处,该更快速的存储设备诸如是固态驱动器(SSD),其涉及用于更大、典型地更慢速的存储设备(例如硬盘驱动器(HDD)或混合硬盘驱动器)的地址。对于直接映射高速缓存而言,主机系统向数据地址的一部分应用散列函数来确定更快速存储设备中的唯一地址,在该唯一地址处存储用于该地址的数据。主机系统必须检查用于除了读取地址之外的不同地址的数据是否没有位于更快速存储设备中的直接映射高速缓存位置中,因为来自更大更慢速存储设备的多个地址映射到更快速存储设备中的一个地址。如果用于读取地址的数据并未处于更快速存储设备中的直接映射位置处,则存在读取未命中(readmiss)并且主机需要从更慢速存储设备取回数据。附图说明参考附图作为示例来描述实施例,附图没有按比例进行绘制,在附图中相同的附图标记指代类似的元素。图1图示了计算系统的实施例。图2图示了现有技术中已知的地址的实施例。图3图示了处于固态驱动器(SSD)中的高速缓存位置处的内容的实施例。图4图示了用于主机系统和固态驱动器(SSD)来处理读取请求的操作的实施例。图5a和图5b图示了针对主机系统和固态驱动器(SSD)来处理写入请求的操作的实施例。图6图示了读取命中流程的实施例。图7图示了读取未命中流程的实施例。图8图示了用以从固态驱动器(SSD)驱逐数据来使空间可用于写入的流程的实施例。具体实施方式利用当前的高速缓存实现方式,通过使主机系统实行高速缓存查找操作在读取命中过程中引入显著的延迟,这要求了操作系统的输入/输出栈中的附加软件层。所描述的实施例在操作为高速缓存存储设备的固态驱动器(SSD)中而不是在主机系统的存储栈中的附加层中实现高速缓存操作来减少高速缓存延迟。利用所描述的实施例,输入/输出(I/O)请求从主机系统直接传递到操作为对(一个或多个)主存储设备的高速缓存的固态驱动器(SSD)来绕过主机系统中的高速缓存软件层。以这种方式,不涉及主机侧高速缓存算法,并且主机侧上的高速缓存软件不检查所请求数据在主机高速缓存中是否可用。SSD可以使用高速缓存管理技术来确定SSD中的非易失性存储器中的请求地址是否是先前写入的。如果是,则数据从SSD返回。如果SSD不具有所请求数据,则SSD向主机系统返回消息来使主机访问来自主(“更慢速”)存储设备的数据。此外,主机系统可以配置SSD中的反映主存储设备的命名空间的命名空间大小,该主存储设备的命名空间可以比在SSD处可用的非易失性存储器命名空间更大。在以下描述中,阐述了诸如逻辑实现方式、操作码、用于指定操作数的装置、资源划分/共享/复制实现方式、系统部件的类型和相互关系以及逻辑划分/集成选择之类的许多具体细节,以便提供对本专利技术更透彻的理解。然而,将由本领域技术人员理解的是,可以在没有这样的具体细节的情况下实践本专利技术。在其他实例中,尚未详细示出控制结构、门级电路和全部软件指令序列,以免使本专利技术晦涩难懂。本领域普通技术人员利用所包括的描述将能够在没有过度试验的情况下实现适当功能性。说明书中对“一个实施例”、“实施例”、“示例实施例”等等的引用指示所描述的实施例可以包括特定的特征、结构或特性,但是每个实施例可以不一定包括该特定的特征、结构或特性。此外,这样的短语不一定指代同一实施例。某些实施例涉及存储设备电子组件。实施例包括用于形成电子组件的设备和方法两者。图1图示了具有处理器102和存储器104的主机系统100的实施,该处理器102包括多个处理核,以及该存储器104包括应用106,该应用106用以将针对诸如一个或多个块可寻址设备之类的已连接的主存储装置108中的存储地址的读取请求和写入请求传送到块层110,该块层110对输入/输出(I/O)进行排队和调度,并且在应用106与已连接的SSD112之间返回数据,该已连接的SSD112起到用于主存储装置108的高速缓存存储器的作用。主存储装置108可以包括块可寻址设备,并且具有比SSD命名空间更大的命名空间或更多地址,其包括具有比主存储装置108更少存储容量的块可寻址设备非易失性存储器设备。存储器104包括:SSD驱动器114,用以管理通过总线116在主机系统100与SSD112之间的通信;以及主存储设备驱动器118,用以管理通过总线116在主机系统100与主存储装置108之间的通信。存储器104可以进一步包括主机侧高速缓存管理器120,用以管理读取未命中和以下情形:在该情形中在SSD112中没有足够空间用于针对主存储装置108的存储地址的新的写入数据。主机侧高速缓存管理器120维护提供了目标存储地址的有序列表的最久未使用(LeastRecentlyUsed,LRU)信息122(诸如LRU列表),该目标存储地址的有序列表被高速缓存在用于当存在读取未命中或驱逐操作时对数据进行高速缓存的存储器104的高速缓存124中以及SSD112中。块层126可以对I/O请求进行排队和调度,并且返回针对主存储装置108与高速缓存120之间的I/O请求的数据。在附加的实施例中,除了LRU高速缓存驱逐算法之外的高速缓存驱逐技术可以被用于确定要从高速缓存124离台(destage)来为更为新近访问的数据腾出空间的数据。在这样的情况下,LRU信息122将包括指示了用于被存储在用于其他这样的高速缓存驱逐和管理算法的高速缓存124中的存储地址的数据的其他类型的高速缓存信息。SSD112包括控制器128,该控制器128包括非易失性存储器高速缓存管理器130,该非易失性存储器高速缓存管理器130具有诸如集合关联性高速缓存或其他高速缓存算法之类的高速缓存映射方案来将用于主存储装置108的存储地址映射到非易失性存储器命名空间中的地址集合。对于集合关联性高速缓存算法而言,映射到高速缓存位置集合的数据可以被存储在用于要高速缓存的数据的存储地址所映射到的集合的任何高速缓存位置中。SSD112包括存储介质132,该存储介质132包括诸如NAND存储管芯之类的非易失性存储器设备,其中维护可寻址块300来提供高速缓存位置或高速缓存块以用于主存储命名空间中的存储地址。存储介质132还可以包括后代非易失性存储器设备,诸如三维交叉点存储器设备或其他字节可寻址写入就位非易失性存储器设备。在一个实施例中,存储器设备可以是或者可以包括使用以下各项的存储器设备:硫属化合物玻璃、多阈值级NAND闪速存储器、NOR闪速存储器、单级或多级相变存储器(PCM)、电阻式存储器、纳米线存储器、铁电晶体管随机存取存储器(FeTRAM)、反铁电存储器、磁阻随机存取存储器(MRAM)存储器(其结合了忆阻器技术,包括金属氧化物基、氧空位基和导电桥随机存取存储器(CB-RAM)的电阻式存储器,或者自旋转移矩(STT)-MRAM)、基于自旋电子磁性结存储器的设备、基于磁性隧道结(MTJ)的设备、基于DW(畴壁)和SOT(自旋轨道转移)的设备、基于晶闸管的存储器设备,或者以上任意的组合,或者其他存储器。存储器设备可以指代管芯本身和/或本文档来自技高网...

【技术保护点】
1.一种用于高速缓存管理操作的装置,用以在固态驱动器中实行针对主机系统的高速缓存操作,所述装置包括:包括非易失性存储器的高速缓存存储器,所述高速缓存存储器用以在用于高速缓存存储器命名空间的地址处存储数据;以及高速缓存管理器,其用以:确定从所述主机系统接收的用于主存储命名空间中的所请求的存储地址的数据是否存储在根据高速缓存映射方案由所请求的存储地址所映射到的高速缓存存储器命名空间中的地址处,其中所述主存储装置中的存储地址中的多个存储地址映射到所述高速缓存存储器命名空间中的一个地址;以及响应于确定用于所请求的存储地址的数据存储在所述高速缓存存储器命名空间中来向所述主机系统返回存储在所述高速缓存存储器命名空间中的所请求地址处的数据。

【技术特征摘要】
2017.03.31 US 15/4768851.一种用于高速缓存管理操作的装置,用以在固态驱动器中实行针对主机系统的高速缓存操作,所述装置包括:包括非易失性存储器的高速缓存存储器,所述高速缓存存储器用以在用于高速缓存存储器命名空间的地址处存储数据;以及高速缓存管理器,其用以:确定从所述主机系统接收的用于主存储命名空间中的所请求的存储地址的数据是否存储在根据高速缓存映射方案由所请求的存储地址所映射到的高速缓存存储器命名空间中的地址处,其中所述主存储装置中的存储地址中的多个存储地址映射到所述高速缓存存储器命名空间中的一个地址;以及响应于确定用于所请求的存储地址的数据存储在所述高速缓存存储器命名空间中来向所述主机系统返回存储在所述高速缓存存储器命名空间中的所请求地址处的数据。2.根据权利要求1所述的装置,其中所述高速缓存管理器进一步用以:向所述主机系统返回消息,所述消息指示用于所请求的存储地址的数据没有存储在所述高速缓存存储器命名空间中,其中所述消息使所述主机系统从所述主存储装置取回用于所请求的存储地址的数据。3.根据权利要求2所述的装置,其中所述高速缓存管理器进一步用以:响应于接收到所述消息来接收从所述主存储装置取回的来自所述主机系统的用于所请求的存储地址的数据;以及将用于所请求的存储地址的所接收数据存储在高速缓存易失性存储器命名空间中。4.根据权利要求1所述的装置,其中所述高速缓存管理器进一步用以:从所述主机系统接收用于所述主存储命名空间的目标存储地址的数据,以添加到所述高速缓存存储器命名空间;确定在所述高速缓存存储器命名空间中是否存在根据高速缓存映射方案由存储地址所映射到的用于所接收数据的可用地址;以及将用于所述目标存储地址的数据存储在所述高速缓存存储器命名空间中的所确定的可用地址中。5.根据权利要求4所述的装置,其中所述高速缓存管理器进一步用以:向所述主机系统返回消息,所述消息指示在所述高速缓存存储器命名空间中不存在用于所述目标存储地址处的数据的可用空间;从所述主机系统接收删除请求来删除用于所述主存储装置中的与目标存储地址不同的驱逐存储地址的数据,其中所述目标存储地址和所述驱逐存储地址两者都映射到所述高速缓存存储器命名空间中的同一地址集合;确定所述高速缓存存储器命名空间中的具有用于所述驱逐存储地址的数据的驱逐地址;删除所述高速缓存存储器命名空间中的所述驱逐地址处的数据;以及将用于所述目标存储地址的数据写入到所述高速缓存存储器命名空间中的所述驱逐地址。6.根据权利要求5所述的装置,其中所述高速缓存管理器进一步用以:在接收到所述删除请求之后,接收来自所述主机系统的重试写入请求,其中响应于所述重试写入请求将用于所述目标存储地址的数据写入到所述高速缓存存储器命名空间中的所述驱逐地址。7.根据权利要求5所述的装置,其中所述高速缓存管理器进一步用以:接收来自所述主机系统的用以对所述驱逐存储地址处的包括脏数据的数据进行读取的请求;以及返回所述高速缓存存储器命名空间中的所述驱逐地址处的脏数据,其中在返回所述脏数据之后,接收用以删除用于所述驱逐存储地址的数据的删除请求。8.根据权利要求1所述的装置,其中所述高速缓存映射方案包括集合关联性高速缓存映射方案。9.根据权利要求1所述的装置,其中所述高速缓存存储器包括字节可寻址写入就位高速缓存存储器。10.一种用于实行高速缓存管理操作的系统,所述系统耦合到高速缓存存储器和具有比所述高速缓存存储器的高速缓存存储器命名空间更大的地址空间的主存储装置,所述系统执行程序代码以进行以下操作:将读取请求发送到所述高速缓存存储器来读取所述主存储装置中的读取存储地址处的数据;以及从所述高速缓存存储器接收根据高速缓存映射方案由所述读取存储地址所映射到的高速缓存存储器命名空间中的地址处的数据。11.根据权利要求10所述的系统,其中所述程序代码包括高速缓存管理器,其中所述程序代码当被执行时进一步用以:由所述高速缓存管理器确定所述主存储装置中的用于所述高速缓存存储器命名地址中所存储的要从所述高速缓存存储器设备驱逐的数据的存储地址;以及将针对所述主存储装置中的存储地址的读取请求和写入请求直接发送到所述高速缓存存储器。12.根据权利要求10所述的系统,其中所述读取请求包括第一读取请求,其中所述程序代码当被执行时进一步用以:从所述高速缓存存储器接收消息,所述消息指示用于读取存储地址的数据没有存储在所述高速缓存存储器命名空间中;以及将用以对所述读取存储地址处的数据进行读取的第二读取请求发送到所述主存储装置。13.根据权利要求12所述的系统,其中所述程序代码当被执行时进一步用以:将从所述主存储装置返回的所述读取存储地址处的读取数据写入到所述高速缓存存储器以存储在所述高速缓存存储器命名空间中。14.根据权利要求10所述的系统,其中所述程序代码当被执行时进一步用以:将用以将数据写入到所述主存储装置中的目标存储地址的写入请求发送到所述高速缓存存储器设备;从所述高速缓存存储器接收消息,所述消息指示在所述高速缓存存储器命名空间中不存在用于所述目标存储地址的可用空间;确定在所述高速缓存存储器命名空间中存储数据所针对的用于主存储装置的驱逐存储地址;以及将删除请求发送到所述高速缓存存储器来删除所述驱逐存储地址处的数据。15.根据权利要求14所述的系统,其中所述程序代码当被执行时进一步用以:响应于发送所述删除请求来将用于所述目标存储地址的数据写入的重试发送...

【专利技术属性】
技术研发人员:P维索茨基M巴尔察克
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1