数据存储装置和方法及包括该装置的数据处理系统的制作方法
【专利说明】数据存储装置和方法及包括该装置的数据处理系统
[0001]本申请要求于2014年10月30日提交的第10_2014_0149459号韩国专利申请的优先权,通过引用将上述韩国专利申请的公开内容全部包含于此。
技术领域
[0002]本申请的实施例涉及一种数据存储装置,更具体地说,涉及一种用于减少固件更新时间的数据存储装置和方法及包括该装置的数据处理系统。
【背景技术】
[0003]计算装置可以用新固件更新旧固件。在固件更新的示例中,当在计算装置中用新固件更新旧固件时,计算装置切断供电然后恢复供电。在另一个示例中,当在计算装置中用新固件更新旧固件时,旧固件的代码将数据从高速缓存(cache)转移或刷(flush)到另一个存储器并且将由代码产生并存储在易失性存储器中的元数据(metadata)写入到非易失性存储器;新固件的代码从非易失性存储器读取元数据并且将其加载到易失性存储器。在固件更新所需要的时间中,将存储在易失性存储器中的元数据写入到非易失性存储器所用的时间与将元数据从非易失性存储器加载到易失性存储器所用的时间很长。
[0004]此外,随着计算系统中易失性存储器和非易失性存储器的容量和存储在易失性存储器中的元数据的大小的增大,将存储在易失性存储器中的元数据写入到非易失性存储器所用的时间与将元数据从非易失性存储器加载到易失性存储器所用的时间也增加。因此,固件更新所需要的时间也增加。当固件更新所需要的时间增加时,用户需要用越来越多的时间来等待固件更新完成。
【发明内容】
[0005]根据本申请的一些实施例,提供了一种数据存储装置,其包括:非易失性存储器,被配置成存储将要替代当前固件映像的固件更新映像;第一易失性存储器;以及处理器,被配置成控制非易失性存储器的操作和第一易失性存储器的操作。
[0006]当由处理器执行当前固件映像中包括的第一代码时,第一代码可以产生数据存储装置的操作所需要的数据并且可以将所述数据存储在第一易失性存储器中。当由第一代码执行固件更新映像中包括的第二代码时,第二代码可以访问并使用已经存储在第一易失性存储器中的数据。
[0007]所述数据可以包括用于将逻辑地址映射到物理地址的映射数据和与对非易失性存储器的访问操作过程中出现的错误有关的数据中的至少一种数据。第一代码可以将存储在第一易失性存储器中的数据发送到非易失性存储器。可选择地,第一代码可以不将存储在第一易失性存储器中的数据发送到非易失性存储器。
[0008]第一代码可以将固件更新映像存储在非易失性存储器中以用固件更新映像更新当前固件映像。第一代码可以将固件更新映像存储在第二易失性存储器中,并且当由第一代码执行存储在第二易失性存储器中的第二代码时,第二代码可以将已经存储在第二易失性存储器中的固件更新映像存储在非易失性存储器中,以用固件更新映像更新当前固件映像。
[0009]当接收到固件更新映像时,第一代码可以产生环境信息并且可以将环境信息存储在第一易失性存储器中,第二代码可以使用存储在第一易失性存储器中的环境信息访问存储在第一易失性存储器中的数据并且可以使用所述数据。环境信息可以包括当前固件映像的第一元版本。第一易失性存储器中的存储所述数据的存储区域的物理地址可以被包括在环境信息、第二代码或由第二代码访问的第二数据中。
[0010]第二代码可以将当前固件映像的第一元版本与固件更新映像的第二元版本进行比较。当第一元版本与第二元版本一致时,第二代码可以使用物理地址访问存储在存储区域中的数据并且可使用所述数据。
[0011]可选择地,当接收到固件更新映像时,第一代码可以产生环境信息并且可以将环境信息存储在非易失性存储器中,第二代码可以将环境信息从非易失性存储器中加载到第一易失性存储器,可以使用环境信息访问所述数据并且可以使用所述数据。环境信息可以包括当前固件映像的第一元版本。第一易失性存储器中的存储所述数据的存储区域的物理地址可被包括在环境信息、第二代码或被第二代码访问的第二数据中。
[0012]第二代码可以将当前固件映像的第一元版本与固件更新映像的第二元版本进行比较。当第一元版本与第二元版本一致时,第二代码可以使用物理地址访问存储在存储区域中的数据并且可以使用所述数据。
[0013]根据本申请的其他实施例,提供了一种包括数据处理装置、主机和接口的数据处理系统,主机被配置成将固件更新映像发送到数据存储装置,接口连接在数据存储装置和主机之间。
[0014]数据存储装置可以包括:非易失性存储器,被配置成存储将要替代当前固件映像的固件更新映像;第一易失性存储器;以及处理器,被配置成控制非易失性存储器的操作和第一易失性存储器的操作。当由处理器执行当前固件映像中包括的第一代码时,第一代码可以产生数据存储装置的操作所需要的数据并且可以将所述数据存储在第一易失性存储器中。当由第一代码执行固件更新映像中包括的第二代码时,第二代码可以访问并使用已经存储在第一易失性存储器中的数据。接口可以是串行高级技术附件(SATA)接口、SATAexpress (SATAe)接口、串行连接小型计算机系统接口(SCSI) (SAS)接口、非易失性存储快速(NVMe)接口或外设组件互连快速(PCIe)接口。
[0015]根据本申请的另外的实施例,提供了一种在数据存储装置中更新固件的方法。该方法包括:使用在数据存储装置中正在被执行的当前固件映像中包括的第一代码产生数据存储装置的操作所需要的数据并且将所述数据存储在第一易失性存储器中;接收固件更新映像;用固件更新映像更新当前固件映像;当由第一代码执行固件更新映像中包括的第二代码时,使用第二代码来访问存储在第一易失性存储器中的数据;使用由第二代码访问的数据来控制数据存储装置的操作。
[0016]更新的步骤可以包括:使用第一代码将已经接收到的固件更新映像存储在非易失性存储器中,以能够用固件更新映像更新当前固件映像。可选择地,更新的步骤可以包括:使用第一代码将固件更新映像存储在第二易失性存储器中;并且使用由第一代码执行的第二代码将已经存储在第二易失性存储器中的固件更新映像存储在非易失性存储器中。
[0017]根据本申请的另外的实施例,提供了一种由处理器执行的在数据存储装置中更新固件的方法。该方法包括:通过执行当前固件映像的第一程序指令产生用于数据存储装置的操作的数据,并将所述数据存储在易失性存储器中;用更新固件映像更新当前固件映像;以及通过执行更新固件映像的第二程序指令,访问存储在易失性存储器中的数据。
[0018]在实施例中,用于数据存储装置的操作的数据将逻辑存储地址映射到物理存储地址。在实施例中,用于数据存储装置的操作的数据是处理器访问非易失性存储器时出现的错误的信息。
[0019]该方法还可以包括:通过执行第一程序指令,产生当前固件映像的第一元版本,并且基于对第一元版本和更新固件映像的第二元版本进行比较的结果,确定第二程序指令是否能够访问所述数据。
[0020]在实施例中,通过执行第二程序指令做出所述确定。
[0021 ] 在实施例中,第一元版本包括元数据结构的信息。在实施例中,处理器通过执行第二程序指令从易失性存储器获取第一元版本。在实施例中,第二程序指令使得处理器从非易失性存储器获取第一元版本。
[0022]该方法还可以包括:在用更新固件映像更新当前固件映像的同时访问所述数据。用于数据存储装置的操作的数据是处理器访问非易失性存储器时出现的错误的信息,或将逻辑存储地址映射到物理存储地址。
[0023]在实施例中,第一程序指令用更新固件映像来更新当前固件映像。在实施例中,第二程序指令用更新固件映像来更新当前固件映像。
[0024]根据本申请的另外的实施例,提供了一种数据存储装置,其包括:处理器,通过执行当前固件映像的第一程序指令产生用于数据存储装置的操作的数据;易失性存储器,存储所述数据;非易失性存储器,在非易失性存储器中用更新固件映像更新当前固件映像。处理器通过执行更新固件映像的第二程序指令来访问存储在易失性存储器中的数据。
[0025]在实施例中,在用更新固件映像更新当前固件映像的同时,处理器访问存储在易失性存储器中的数据,用于数据存储装置的操作的数据是处理器访问非易失性存储器时出现的错误的信息,或将逻辑存储地址映射到物理存储地址。
【附图说明】
[0026]通过参照附图详细地描述本申请的示例性实施例,本申请的以上和其他的特征和优点将变得更加显而易见,在附图中:
[0027]图1是根据本申请的一些实施例的数据处理系统的框图;
[0028]图2是根据本申请的一些实施例的图1中示出的数据存储装置的固件更新的概念图;
[0029]图3是根据本申请的其他实施例的图1中示出的数据存储装置的固件更新的概念图;
[0030]图4是根据本申请的另外的实施例的图1中示出的数据存储装置的固件更新的概念图;
[0031]图5是根据本申请的其他实施例的图1中示出的数据存储装置的固件更新的概念图;
[0032]图6是根据本申请的另外的实施例的图1中示出的数据存储装置的固件更新的概念图;
[0033]图7是根据本申请的另外实施例的图1中示出的数据存储装置的固件更新的概念图;
[0034]图8是根据本申请的其他实施例的数据处理系统的框图;
[0035]图9是包括图1中示出的数据处理系统的数据中心的示意性框图。
【具体实施方式】
[0036]现在将在下文中参照附图更充分地描述本申请,在附图中示出本申请的实施例。然而,本申请可以以许多不同形式来实现并且不应被解释为受限于这里阐述的实施例。相反,这些实施例被提供为使得该公开将是彻底的和完整的,并将向本领域的技术人员充分传达本申请的范围。在附图中,为了清晰起见,会夸大层和区域的尺寸和相对尺寸。同样的附图标记始终指示同样的元件。
[0037]将理解的是,当元件被称为“连接”或“结合”到另一元件时,该元件可以直接连接或直接结合到所述另一元件,或者可以存在中间元件。相反,当元件被称为“直接连接”或“直接结合”到另一元件时,不存在中间元件。如在这里使用的,术语“和/或”包括一个或更多个相关所列项的任意和所有组合并且可以缩写成“/”。
[0038]将理解的是,虽然这里可以使用术语第一、第二等来描述各种元件,但是这些元件不应该受这些术语限制。这些术语仅用来将一个元件与其他元件区分开。例如,在不脱离本公开的教导的情况下,第一信号可以被命名为第二信号,相似地,第二信号可以被命名为第一信号
[0039]这里使用的术语仅是出于描述具体实施例的目的,而不意图限制本申请。如这里所使用的,除非上下文另外明确指出,否则单数形式“一个(种)”和“所述(该)”也意图包括复数形式。还将理解的是,当在本说明书中使用术语“包含”和/或“包括”时,说明存在所述特征、区域、整体、步骤、操作、元件和/或组件,但不排除存在或附加一个或更多个其他特征、区域、整体、步骤、操作、元件、组件和/或它们的组。
[0040]除非另有定义,否则这里使用的所有术语(包括技术术语和科学术语)具有与本申请所属领域的普通技术人员所通常理解的意思相同的意思。还将理解的是,除非这里明确这样定义,否则术语(例如,在通用的字典中定义的术语)应该被解释为具有与相关领域和/或本申请的环境中它们的意思一致的意思,而将不以理想的或过于形式化的含义来解释。
[0041]图1是根据本申请的一些实施例的数据处理系统100A的框图。数据处理系统100A可以包括通过接口 I1彼此连接的主机200和数据存储装置300A。