存储系统和有别名的存储器的制造方法_4

文档序号:9583643阅读:来源:国知局
请求的非易失性存储器205部分(例如,存储器区211)清零掉。在逻辑上将所请求的部分清零掉可以牵涉例如标记出所请求的部分已清零并且然后等待在物理上对块清零,直到接收到针对该块的读取或写入请求为止。当文件系统驱动程序405请求了被标记用于清零的块时,只要在重启之后,文件系统驱动程序405就接收到用于清零块的零,可以使用提供这一清零功能的任何实现方式而不偏离本文描述的主题的各方面的精神或范围。
[0066]在一种实现方式中,存储器控制器410可以使用硬件并行性来并行地对块的各部分清零。这一硬件并行性可以包括能够同时对多个存储器元件进行清零的一个或多个电路元件。
[0067]6.对当前已取别名的块重新取别名的请求。操作系统或使用非易失性存储器205的其它进程有时可能想要将非易失性存储器205中的块移动到非易失性存储器205中的另一个位置。这在被移动的存储器牵涉别名的情况下可能造成问题。例如,参照图5,进程可以请求将存储器块215中的数据移动到块505。存储器块216可以被取别名到指向存储器块 215。
[0068]如果别名没有被改变到新的块505,则当存储器块215中的数据被改变时,读取存储器块216中的数据可以返回被改变了的数据。这在例如程序期望块216仍然被取别名到未被改变的数据(例如,块505中的数据)的情况下可能造成问题。
[0069]为了解决这个和其它问题,存储器控制器410可以被构造成接收对当前已取别名的块重新取别名的请求。例如,在一种实现方式中,存储器控制器410可以被构造成接收将特定范围内的存储器取别名到另一特定范围内的存储器的请求。在这一实现方式中,存储器控制器410可以确定指向第一特定范围的所有别名并且将这些别名重新取别名到指向第二特定范围。
[0070]在另一种实现方式中,存储器控制器410可以被构造成接收将特定的别名重新取别名到新的位置的请求。例如,参照图3和4,存储器控制器410可以被构造成接收对针对块215的子块的别名之一重新取别名的请求。在这一实现方式中,当文件系统设法对用于存储器的一部分的一组别名重新取别名时,文件系统驱动程序405可以包括这样的逻辑:结合向存储器控制器410发送对每个别名重新取别名的命令而确定用于该存储器部分的所有别名。
[0071]返回图5,当接收并处理了重新取别名请求时,可以用从块216指向块505的别名替换之前从块216指向块215的别名。存储器控制器可以被构造成以“安全”的方式执行重新取别名操作。安全在该上下文中意味着在逻辑上重新取别名操作是在执行在重新取别名请求之后接收到的其它操作之前执行的。在一种实现方式中,只要文件系统驱动程序405不能使用任何一组操作来检测到重新取别名操作不是相对于接收到它时乱序执行的,存储器控制器就可以在物理上执行其它操作。
[0072]存储器控制器可以以其它方式实现重新取别名,而不偏离本文描述的主题的各方面的精神或范围。例如,在一种实现方式中,存储器控制器可以被构造成接收移动块命令并且可以在移动块时自动对指向该块的别名重新取别名。
[0073]在另一种实现方式中,存储器控制器可以被构造成接收移动块命令并且可以更改内部映射元件以在逻辑上移动该块,而不在物理上将该块复制到另一个位置。在一些实现方式中,以这种方式移动块可以消除执行重新取别名的需要。例如,如果别名指向该块而不管映射信息,则当改变映射信息以移动该块时,别名仍然指向该块。
[0074]在另一种实现方式中,存储器控制器可以被构造成接收不是由移动块命令自动触发的重新取别名命令。在这一实现方式中,文件系统驱动程序405除了请求移动块之外,可以根据情况明确地请求重新取别名。
[0075]上述示例并非意图全部包括或穷尽可以将存储器控制器构造成实现重新取别名命令的方式。基于本文的教导,本领域技术人员可以认识到可以使用的其它实现方式而不偏离本文描述的主题的各方面的精神或范围。
[0076]文件系统驱动程序405可以是给出命令和从存储器控制器410接收响应的软件和/或硬件组件。文件系统驱动程序405可以是文件系统的存储堆栈的一部分并且405可以通过系统总线或其它通信链路与存储器控制器410通信。文件系统驱动程序405可以提供到文件系统的存储堆栈的接口,该接口使得非易失性存储器205看起来像是对于存储堆栈可用的其它存储装置(例如,硬盘、闪速存储器、其它非易失性或易失性存储器等等)一样。
[0077]虽然本文的示例中的一些描述了别名以及关于非易失性存储器的其它动作,但是本文的教导也可以应用于其中文件系统区和存储器区是使用其它存储器配置来实现的实现方式中。例如,文件系统区和/或存储器区可以用易失性、非易失性或易失性和非易失性存储器的组合来实现。此外,文件系统区可以被实现在不同于存储器区的存储器类型上。
[0078]在这些实现方式中,本发明的教导可以被应用于例如从易失性存储器到易失性存储器的别名、从易失性存储器到非易失性存储器的别名、从非易失性到易失性存储器的别名、具有两种或更多种不同类型的别名(例如,非易失性到非易失性、易失性到非易失性等)的系统等等。此外,诸如图4的存储器控制器410之类的存储器控制器可以提供允许别名被使用、创建、重新取别名等等并且执行本文描述的其它动作而不偏离本文描述的主题的各方面的精神或范围的接口。
[0079]转到图6,存储器控制器605被示出为具有接口 610和示范性的电路615-618。在一个实施例中,电路可以仅仅包括物理组件,诸如电阻器、晶体管、电容器、电压源、电流源、开关、电感器等等。物理组件中一个或多个可以被集成到一个或多个芯片中。在另一个实施例中,电路可以包括物理组件以及指令,所述指令指示物理组件如何操作。这些指令可以被编码在易失性或非易失性存储器中。
[0080]存储器控制器605的电路是示范性的并且并非意味着全部包括可能需要或包括的电路。此外,电路的数量在其它实施例中可能不同,而不偏离本文描述的主题的各方面的精神或范围。在一些实施例中,结合图6描述的电路可以被包括在其它电路中或者被放置在子电路中,而不偏离本文描述的主题的各方面的精神或范围。
[0081]接口 610可以包括这样的结构:文件系统驱动程序405通过该结构可以与存储器控制器605进行通信。例如,接口 610可以允许文件系统驱动程序经由对请求以及对于那些请求的响应进行编码的电子的、光学的或者其它信号来与存储器控制器605进行通信。接口 610还可以被构造成允许如结合图4所指示的通信。
[0082]例如,接口610可以被构造成接收在存储器的存储系统块与存储器的主存储器块之间创建别名的请求。存储器的存储系统块可以被用于例如保持存储系统数据并且可以对应于例如图2的文件系统区210。主存储器块可以被用于计算机的主存储器并且可以对应于图2的存储器区211。
[0083]别名电路615可以被构造成按照文件系统驱动程序的请求而在存储器的存储系统块与存储器的主存储器块之间创建别名。如先前所指示的,在这些存储器块之间创建别名可以包括在这些块的子块之间创建多个别名。别名电路615可以进一步被构造成响应于对子块写入的请求而切断到该子块的别名。在一种实现方式中,别名电路615可以等待直到就在向从子块中读取的请求提供服务之前为止才切断别名。别名电路615还可以被构造成响应于例如移动有别名的块的请求而对有别名的块重新取别名。
[0084]复制电路616可以被构造成对将主存储器块复制到新位置的请求作出响应。在一种实现方式中,复制电路616可以通过在物理上将主存储器块中的数据复制到新的位置来作出响应。在另一种实现方式中,复制电路616可以如先前描述的那样通过使数据留在主存储器块中并且更新映射元件来在逻辑上将主存储器块中的数据复制到新的位置。
[0085]清零电路618被构造成对将所请求的存储器范围进行清零的请求作出响应。所请求的存储器范围可以包括用于主存储器的存储器的部分或全部。在一种实现方式中,清零电路618可以通过标记所请求的范围被清零来对所请求的存储器范围清零。在一个实施例中,清零电路618可以等待直到存储器控制器605接收到针对所请求范围的部分的读取或写入请求时才在物理上对该部分进行清零。在另一个实施例中,清零电路618可以响应于针对已经被标记为被清零的存储器的读取而在读取高速缓存中置零。在这一实施例中,清零电路618可以不实际将被标记范围在物理上清零,但是针对存储器的读取可以在从读取高速缓存向它提供服务时返回零。在一种实现方式中,清零电路可以等待直到接收到托管主存储器的计算机重启的指示之后才对存储器进行清零(例如,在物理上或逻辑上)。
[0086]取回电路617可以被构造成对文件系统驱动程序的读取请求作出响应。在某些别名已经被切断的情况下,取回电路617可以通过这样响应请求:在还未切断别名的情况下从存储系统块的子块中获得第一数据并且在已经切断了别名的情况下从主存储器块的子块中获得第二数据并且然后将第一数据和第二数据进行组合以响应读取请求。
[0087]在一个示例中,存储器的主存储器块可以包括存储器
当前第4页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1