用于非易失性存储器的留存日志操作的制作方法_2

文档序号:8227542阅读:来源:国知局
at1n, Raleigh, North Carolina 得到的Red Hat Linux。可使用的Microsoft Windows操作系统的版本包含可从MicrosoftInc., Redmond, Washington 得到的 Microsoft Windows Mobile、Microsoft Windows 7、Microsoft Windows Vista 以及 Microsoft Windows XP 操作系统。Symbian 操作系统可从Accenture PLC, Dublin, Ireland得到。Mac OS操作系统可从Apple, Inc., Cupertino,California 得到。Android 操作系统可从 Google, Inc., Menlo Park, California 得到。
[0021]APP 134可以是可在计算装置100上的OS 132的控制下运行(执行)的软件应用。APP 134和/或OS 132可包含用于处理事务的供应(可涉及将信息存储在NVM 135中XAPP134和/或OS 132还可包含用于维持日志136的供应。可使用包含在APP 134和/或OS132中的数据和/或计算机可执行指令来实现这些供应。
[0022]例如,NVM 135可包含随机存取存储器和/或串行存储器。可使用可存储信息的一个或多个非易失性存储器装置来实现NVM 135。例如,信息可包含可由处理逻辑120执行的可执行指令和/或可由处理逻辑120操纵的数据。例如,非易失性存储器装置可包含只读存储器(ROM)装置、可编程ROM (PROM)装置、可擦除PROM (EPROM)装置、,电可擦除PROM(EEPROM)装置、闪速存储器装置、铁电随机存取存储器(FeRAM)装置、磁阻随机存取存储器(MRAM)装置、相变存储器(PCM)装置、具有开关的PCM (PCMS)装置、基于纳米线的存储器装置、铁电晶体管随机存取存储器(FeTRAM)装置、电阻式随机存取存储器(RRAM)装置和/或其它类型的非易失性存储器装置。NVM 135可包含数据138和/或日志135。
[0023]数据138可包含与可由APP 134和/或OS 132处理的事务关联的信息(例如,数据)。日志136可包含可用于恢复包含在数据138中的信息的信息。可以用许多不同的方式实现日志136(例如,作为链表、栈数据结构、数组)。将在以下另外讨论可包含在数据138和日志136中的信息的细节。
[0024]应该注意到虽然在图1中将日志136和数据138示为包含在主存储装置130中的NVM 135中,但是其它变化是可能的。例如,日志136和/或数据138可包含在NVM中,NVM可包含在辅助存储装置150中。在另一示例中,数据138和/或日志136可存储在可经由通信网络(例如,在云存储中)访问的NVM中。此处,可经由一个或多个通信接口 180来访问数据138和/或日志136。注意以上示例变化包含用于存储日志136和/或数据138的可能的变化并且其它变化是可能的。
[0025]可使用延迟的留存将信息存储在NVM 135中。延迟的留存可涉及指示信息将留存在NVM 135中但是不指示信息实际上何时留存在NVM 135中。采用延迟的留存来将信息写入NVM 135的操作(例如,可执行指令)可在信息到NVM 135的实际写入之前完成执行。
[0026]与延迟的留存相比,立即的留存可涉及将信息立即留存到NVM 135。此处,直到将信息写入(提交)到NVM 135之后,采用立即的留存来将信息写入NVM 135的操作才可完成。
[0027]例如,假设计算装置100 (图1)实现(I) “nvstore”指令(采用延迟的留存来将信息写入NVM 136)和(2) “nvflush”指令(采用立即的留存来将由“nvstore”指令写入的信息立即留存到NVM 135)。计算装置100可首先执行“nvstore”指令来将信息写入NVM 135中的位置。注意由于“nvstore”指令采用延迟的留存来将信息写入NVM 135,实际上可在“nvstore”指令完成执行之后某个时间将信息写入位置。因此,“nvstore”指令的执行的完成不保证信息被实际写入NVM 135中的位置并且在“nvstore”指令完成执行之后读取NVM135中的位置的指令不一定读取由“nvstore”指令写入的信息。
[0028]现在假设计算装置100在“nvstore”指令之后执行“nvflush”指令并且“nvflush”指令在将信息实际写入NVM 135中的位置之前执行。由于“nvflush”指令采用立即的留存并且在“nvstore”指令之后被执行,在“nvflush”指令完成执行之前,将与“nvstore”指令关联的信息写入NVM 135中的位置。因此,在“nvflush”指令执行之后读取位置的指令将读取由“nvstore”指令写入的信息。
[0029]图2图示可帮助解释上述“nvstore”和“nvflush”指令的操作的时间线200。参考图2,在时间Ttl处,计算装置100可执行第一“nvstore”指令来将信息(由“A”表示)存储在NVM 135中的第一位置(由aL1 ”表示)处。在时间!\处,计算装置100可执行第二“nvstore”指令来将数据(由“B”表示)存储在NVM 135中的第二位置(由“L2”表示)处。在时间Tn处,计算装置100执行“nvflush”指令来确保由第一和第二“nvstore”指令写入的信息被提交(实际被写入)到NVM 135。
[0030]行210指示将由第一“nvstore”指令指定的信息写入NVM 135所花的时间。行212指示将由第二“nvstore”指令指定的信息写入NVM 135所花的时间。注意行210示出在第一“nvstore”指令完成执行之后某个时间由第一“nvstore”指令指定的信息被写入NVM 135。类似地,行212示出在第二 “nvstore”指令完成执行之后某个时间由第二 “nvstore”指令指定的信息被写入NVM 135。因此,信息的实际留存可被视为是延迟的,因为在“nvstore”指令完成执行之后的某个时间处信息可被实际留存到NVM 135。
[0031]也应该注意到写入由第一 “nvstore”指令指定的信息所花的时间可与第二“nvstore”指令的执行重叠。因此,采用延迟的留存可使指令执行能与将信息写入NVM 135重叠并且可由此提升利用“nvstore”指令来将信息存储在NVM 135中的应用的性能。
[0032]除了上述以外,行210和212也指示当“nvflush”指令完成执行时,由第一和第二“nvstore”指令指定的信息被提交到NVM 135。换句话说,当“nvflush”指令完成执行时,保证将由第一和第二“nvstore”指令写入的信息写入NVM 135。因此,“nvflush”指令可被称为将信息立即留存到NVM 135。
[0033]涉及排序的一个或多个规则可与上述“nvstore”和“nvflush”指令关联。例如,可与上述“nvstore”和“nvflush”指令关联的第一规则可指示由多个“nvstore”指令指定的信息是以执行“nvstore”指令的顺序被提交到NVM 135。因此,根据第一规则,在以上示例中,因为第一 “nvstore”指令在第二 “nvstore”指令之前执行,所以在将由第二 “nvstore”指令指定的信息提交到NVM 135之前,将由第一 “nvstore”指令指定的信息提交到NVM135。
[0034]例如,可与上述“nvstore”和“nvflush”指令关联的第二规则可指示可能不重新排序由在“ nvflush”指令之前执行的“ nvstore”指令指定的信息的提交,使得在“ nvflush”指令完成执行之后将信息提交到NVM 135。因此,在以上示例中,第一和第二“nvstore”指令是在“nvflush”指令之前执行。根据第二规则,在此示例中,在“nvflush”指令完成执行之前,将由第一和第二“nvflush”指令指定的信息提交到NVM 135。另外,根据第二规则,在“nvflush”指令完成执行之后,将不允许将由第一和/或第二 “nvstore”指令指定的信息提交到NVM 135。
[0035]下文的示例可有助于理解以上示例排序规则。返回参考图2,第一 “nvstore”指令在第二 “nvstore”指令之前执行。如上所述,第一 “nvstore”指令指定将由“A”表示的信息存储在NVM 135中的位置“L/’中。类似地,第二“nvstore”指令指定将由“B”表示的信息存储在NVM 135中的位置“ L2 ”中。现在假设,“ L1 ”和“ L2 ”是NVM 135中的相同位置。遵循第一规则,由“A”表示的信息会被存储在位置中并且以后由“B”表示的信息会被存储在相同位置中,重写由“A”表示的信息。如果将信息存储在NVM 135中不遵循第一规则并且由第一和第二“nvstore”指令指定的信息到NVM 135的提交可被重新排序,则被写入NVM135中的位置的实际信息可能是未知的。换句话说,如果允许将信息提交到NVM 135的重新排序,贝1J会不清楚由第二“nvstore”指定的信息是否被由第一 “nvstore”指令指定的信息重写或由第一 “nvstore”指令指定的信息是否被由第二 “nvstore”指令指定的信息重写。
[0036]关于第二规则,在图2中,“nvflush”指令遵循第一和第二“nvstore”指令。因此,在时间Tn处将由第
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1