首页> 中国专利> 分区为包括元数据区域的多个区域的字节可寻址非易失性读写主存储器

分区为包括元数据区域的多个区域的字节可寻址非易失性读写主存储器

摘要

在一个实施例中,一种计算机具有处理器和字节可寻址非易失性读写主存储器。该存储器被分区为多个区域,每个区域具有至少一个定义的操作属性。多个区域中的至少一个区域是元数据区域,以存储多个数据集。每个数据集指定多个区域中的一个对应区域在存储器中的位置、和该对应区域的至少一个操作属性。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-02-12

    授权

    授权

  • 2016-09-28

    实质审查的生效 IPC(主分类):G06F9/44 申请日:20140122

    实质审查的生效

  • 2016-08-31

    公开

    公开

说明书

背景技术

许多计算机系统针对主存储器和辅助存储器使用隔离技术。例如,主存储器通常使用易失性存储技术,诸如动态随机访问存储器(DRAM)。由于一旦移除电力易失性存储器就不会留存其内容(计算机系统中缺少诸如电池备用机构的附加组件,电池备用机构可以在有限的时间段内保持存储器内容、同时增加了成本和复杂性),因此用于计算机系统的软件通常例如存储在使用非易失性存储技术的辅助存储器中,诸如闪存固态驱动(SSD)或磁硬盘驱动(HDD)。作为这种布置的结果,计算机系统包含多种不同类型的存储器,增加了成本和复杂性。

附图说明

图1是根据本公开实施例的具有字节可寻址非易失性读写主存储器的计算机的框图。

图2是根据本公开实施例的具有字节可寻址非易失性读写主存储器的另一计算机的框图。

图3是根据本公开实施例将图2的字节可寻址非易失性读写主存储器分区为多个区域的框图。

图4A-4B是根据本公开实施例的存储在图2的字节可寻址非易失性读写主存储器的示例性元数据区域中的数据结构的示意性表示,其描述了图3的多个区域。

图5A-5B是根据本公开实施例的启动图1或2的计算机系统的方法的流程图。

具体实施方式

可能存在与针对主存储器和辅助存储器使用隔离技术的计算机系统相关联的成本、复杂性、时间以及其他缺陷。此外,由于这些辅助存储器装置的各个字节通常不可被计算机系统的处理器直接访问并且无法像从DRAM访问那样由处理器快速访问,因此当对计算机系统上电时,辅助存储器装置的某些内容首先从辅助存储器复制到主存储器。这些部分可能包括例如计算机的操作系统。这些操作通常延长了计算机的启动时间。

如在此和所附权利要求中所限定的,“主存储器”可广义地理解为意指不管处理器采用什么样的字长,其中数据的各个字节可被直接寻址、并且可由计算机系统的处理器读取或写入的存储器。此外,尽管一个“字节”通常可以为八位,但在一些实施例中,一个字节可以指更大或更小的多位集。

相较于现有技术而言成本更低廉、访问时间更快并且每单位容量的字节密度更大的新的字节可寻址非易失性存储器技术正变得可用。还期望这些存储器的成本、访问时间、和密度能达到并超过DRAM的成本、访问时间、和密度。这种存储器的实施例包括但不限于阻变随机访问存储器(RRAM)、忆阻器、相变随机访问存储器(PCM、PCRAM、PRAM)、磁阻随机访问存储器(MRAM)和自旋转移力矩随机访问存储器(STTRAM),仅列举了少许。这种存储器可用作计算机系统中的持久性主存储器(PMM)。如在此和所附权利要求中限定的,“持久性”或者“非易失性”主存储器可广义地理解为意指在计算机系统的上电循环(power-cycling)中留存其内容的主存储器。在一些不是字节可寻址而是块可寻址的隔离的实施例中,隔离的辅助存储器可从这种计算机系统省略,这是因为诸如操作系统、超管理器(hypervisor)、APP程序、及其相关的持久性数据文件可被存储在PMM中并且在计算机系统的上电循环中得以留存。这能够有利地使得计算系统不太复杂、不太昂贵并且启动更快。

现在参照附图,其例示了根据本公开而构造的计算机的实施例,其中处理器通信地连接至被分区为多个区域的字节可寻址非易失性读写主存储器。每个区域具有至少一个定义的操作属性。多个区域中的至少一个区域是元数据区域,其被配置为存储多个数据集。每个数据集指定该多个区域中的一个对应区域在存储器中的位置、以及该对应区域的至少一个操作属性。引导装载程序(boot loader)、以及操作系统和/或超管理器存储在该区域中的一个或多个区域中,并且在计算机启动进程期间运行。

操作系统是管理计算机硬件资源的软件的集合,对计算机上运行的其他程序提供服务。操作系统被视为在概念上在硬件“之上”运行并且可直接控制硬件的原生(native)(也被称为“裸金属”)程序,而在计算机上运行的其他程序通常通过对操作系统作出的请求来访问硬件资源。超管理器是创建并运行虚拟机的软件集,虚拟机可被视为模拟另一计算机的性能规范、架构和操作的“软件计算机”。超管理器还可以是原生的“裸金属”程序,或者可替换地可由操作系统托管,其中超管理器在该操作系统“之上”运行。在此使用的术语“超管理器”以及在所附权利要求中使用的术语“高级程序”指的是原生的、“裸金属”程序超管理器。

现在参照图1更加详细地考虑计算机,计算机100具有经由总线115连接至字节可寻址非易失性读写(BANVRW)主存储器120的处理器110。主存储器120被分区 为多个区域,其中一个区域是元数据区域。三个示例性区域例示为:区域J 122、区域K 124、和元数据区域130。元数据区域130存储多个数据集。例示了两个示例性数据集:数据集J 140(其与区域J 122相关联)和数据集K 150(其与区域K 124相关联)。

元数据区域130可由处理器110(在诸如引导装载程序的程序指示下)使用以识别多个区域的位置和操作属性。每个数据集140、150具有位置162,其指定分别构成区域122、124的存储器120的地址范围(或多个地址范围)。每个数据集140、150还具有操作属性164,其指定分别对应于区域122、124的存储器120的地址范围(或多个地址范围)。在一些实施例中,具有针对元数据区域的数据集,而在元数据区域130位于预定的固定位置的其他实施例中,这种数据集可被省略。在一些实施例中,这种地址可通过计算机的架构预定,和/或对处理器110可以是已知的或者可在软件的指示下由处理器110确定。

每个区域122、124、130具有至少一个与其相关联的定义的操作属性。能够定义多个不同的操作属性164。一种操作属性164可以是由处理器110对对应区域内的存储器地址的至少一种类型的可允许访问。这种可允许访问可包括读取访问、写入访问、或者读取访问和写入访问两者。

区域的另一操作属性164可以是内容留存属性,其指定如何处置区域122、124、130的内容以响应计算机100的关机。术语“关机”可广义地理解为意指操作系统或超管理器在计算机100在其再次使用之前能够重启的程度上的运行结束。为了再次使用计算机100,关机可被“热”重启跟随(当对计算机的供电不是关闭然后开启的循环时)或者被“冷”重启跟随(当对计算机的供电是循环的时)。内容留存属性可指定:响应于关机而保持存储器120的区域122、124、130中的数据。例如,保持数据内容可被指定为针对包含通过处理器110可运行的指令的一个或多个程序的区域。可替换地,内容留存属性可指定:响应于关机丢弃该区域中的数据。例如,这可针对用于在程序运行期间临时数据的区域而指定。临时数据是程序不期望该数据在关机之后仍有效的数据。临时数据可由引导装载程序、操作系统、超管理器和/或在操作系统、和/或超管理器的控制下运行的其他程序中的一个或多个生成和/或使用。

在一些情况中,可被动地丢弃临时数据。在此情况中,相关程序期望临时数据已被存储在易失性存储器中,因此不期望来自先前开机的临时数据在当前开机之后仍然有效。在其他情况中,可在例如关机进程期间主动丢弃临时数据。在主动丢弃中,对应的非易失性区域中的内容可被重写,或另外被无效化或使之不可访问。在临时数据包含被保护以避免入侵访问的敏感信息的情况中,主动丢弃可能是有利的,例如,在断电时从计算机系统移除主存储器。

另一操作属性164可以是应用于对应区域的内容的加密类型。加密提供另一种可通过其保护敏感信息的机构。加密可用于在从计算机的前次开机到后续开机的过程中保护敏感信息—即在关机过程中保存的数据和/或程序。加密类型可以指定:不对区域应用加密或者对区域应用特定类型的加密。加密还能够以允许借助于丢弃加密密钥的另一被动形式丢弃存储器内容,从而致使存储器内容无法破译并且因此不可用。

如后续将参照图2更详细说明的,计算机100根据元数据区域130的多个数据集140、150强制执行多个区域的操作属性。

元数据区域130有利地使存储器120自描述。换言之,处理器110能够在引导装载程序或其他程序的指示下、通过访问和解读元数据区域130的数据集而确定存储器120已分区成的多个区域的位置和属性。

现在参照图2考虑另一种计算机,计算机200包括处理器210和字节可寻址非易失性读写(BANVRW)主存储器290。处理器210通信地连接至存储器管理单元(MMU)220,其在一些实施例中位于处理器210内部。处理器210通信地连接至总线205。在一些实施例中,总线205可以是前端总线或相干总线。虽然为了清楚而例示了单个处理器,但在一些诸如多核CPU的示例性系统中,该多核CPU内可具有多个处理器。在一些实施例中,每个处理器210还可包含1级缓存。在一些实施例中,多核CPU还可包括总线205、2级缓存、和3级缓存。为了示例的清晰性,图2省略了多个处理器和缓存。

计算机200还包括处理器210(或多核CPU)外部的其他组件。存储器控制器240直接或间接通信地连接至总线205。存储器控制器240转而又通信地连接至主存储器290的介质控制器280。

在一些实施例中,计算机可包括附加组件。通信地连接至总线205的外围接口252可以适合于通信地连接至外部的通常可移除的介质250,诸如硬盘驱动、USB闪存驱动、或者EEPROM。在一些实施例中,外部介质可包含引导装载程序、操作系统、和超管理器中的一个或多个,并且计算机200可被配置为从外部介质250而不从主存储器290启动。在一些实施例中,计算机200中的跳线或硬件标识可确定是否使用存储在存储器290中或介质250上的引导装载程序。跳线或硬件标识还可以确定操作系统或超管理器是从存储器290还是从介质250加载的。在其他实施例中,引导装载程序本身可确定操作系统或超管理器是从存储器290还是从介质250加载的。后续地将参照图2-3更详细地讨论引导装载程序、操作系统、和超管理器。

在一些实施例中,计算机200还可包括易失性主存储器260,诸如DRAM,其在对计算机的供电循环之后不留存其先前的数据内容。易失性主存储器260可用于在计 算机200操作期间存储不需要在关机之后留存的数据。易失性主存储器260可用于存储可被复制到易失性主存储器260上并且之后可从易失性主存储器260运行的程序代码。存储器控制器265将易失性主存储器260通信地连接至总线205。

在一些实施例中,计算机200可包括加密/解密模块270,其可以被逻辑地安排在总线205和存储器控制器240之间。由处理器210写入存储器290的数据(或程序代码)在从处理器210通过加密/解密模块270传送至存储器290时被模块270加密,由处理器210读取的数据在从存储器290通过模块270传送至处理器210时被解密。加密/解密模块270实施加密标准(即,方法),其被指定用于主存储器290中对应于被读取或写入的存储器地址的区域。

在计算机为“芯片上系统(SoC)”的一些实施例中,此芯片可包括处理器210(或多核CPU),以及外围接口252、存储器控制器240、265、和加密/解密模块270中的一个或多个。

现在将考虑将字节可寻址非易失性读写主存储器290分区为多个区域的一个实施例,进一步参照图3,建立了多个区域。每个区域具有存储器的相连字节的一个或多个地址空间。每个区域可以是多个不同类型中的一种:ROM、持久的、暂存的、或元数据。也可定义其他类型的区域。

ROM区域可用于存储引导装载程序的至少一部分的代码。此部分例如可以是一阶引导装载程序。ROM区域还可包括用于计算机的某些管理功能的代码,诸如基本输入输出系统(BIOS)或者统一可扩展固件接口(UEFI)。ROM区域可具有只读访问、和响应于计算机关机而保持其内容的操作属性。在使用可信的进程重启期间可实施更新ROM区域的内容(即,向ROM区域写入)的权能,诸如例如通过供给密码或者设置硬件跳线或标识。通常,存储器中具有一个ROM区域。区域的内容可被加密,尽管通常其不被加密。

持久性区域用于存储在计算机关机之后仍保存在存储器290中的程序和数据,从而保留启动循环。计算机的操作系统和/或超管理器通常被存储在持久性区域中。当计算机使用二阶引导装载程序时,则该程序还可被存储在持久性区域中。存储在持久性区域中的程序可被配置为在该区域中就地运行。为了能够就地运行,程序代码可被写为独立于存储器位置之外、或者知晓其在存储器中的位置而且在运行期间不会修改位于其图像内的任何存储。可替换地,程序可被配置为加载到另一存储器位置中并在该位置被运行,例如易失性主存储器260。存储在持久性区域中的程序和数据可被识别为文件系统中的文件。在本文中,“文件系统”指的是具有预先定义的信息结构的存储器中的文件和目录的集合。通过文件系统驱动器访问包括存储在其内的文件的文件系 统(即,通过作为操作系统一部分的内核文件系统模块,其被设计为管理文件系统)。数据还可被存储在作为原始卷的持久性区域中,这些原始卷的格式化专用于诸如数据库的特定程序;这些原始卷可通过程序而不通过文件系统访问。持久性区域可具有在启动进程之后正常操作期间的至少读取访问、和响应于计算机关机保持其内容的操作属性。然而,在启动进程期间,持久性区域可为不可写入的,从而保护其内容避免可能会在启动进程期间发生的伪写入操作。该区域的内容可被加密或可不加密。存储器中可以具有任意数量的持久性区域,但通常具有至少一个。

暂存区域通常用于存储在计算机操作期间生成的、并且不期望在上电循环中保持的数据。数据中的一些可由例如引导装载程序、操作系统、和超管理器中的一个或多个在其他程序中生成。可存储在暂存区域中的示例性数据包括由内核和用户进程创建的、不旨在关机之后被保持的数据结构,诸如只有在激活页面时被处理器使用的页面表格条目。在一些实施例中,程序还可被加载到暂存区域中并在该处运行。暂存区域可具有至少读取访问和写入访问、和响应于计算机关机而丢弃其内容的操作属性。易失性存储器,诸如DRAM 260,响应于计算机的上电循环而固有地丢弃其数据内容,而非易失性存储器290不会。因此,如先前讨论过的,非易失性存储器的暂存区域的内容可以要么被动地被丢弃、要么被主动地丢弃。该区域的内容可加密或可不加密。

元数据区域用于存储描述字节可寻址非易失性读写主存储器290的分区的数据。元数据区域通常具有只读访问、和响应于计算机关机保持其内容的操作属性。存储器中可以有两个或多个存储在存储器中的元数据区域的副本。该附加的元数据区域可用于恢复的目的。区域的内容可被加密,尽管其通常不被加密。可实施安全地更新元数据区域中的内容以重新配置主存储器290的分区(即,管理存储器区域)的权能。在一些实施例中,可通过被授权的用户人工地完成该重新配置。在一些实施例中,可在意识到持久性区域或暂存区域中的一个自由空间不足而另一个自由空间过剩时自动地执行重新配置。通过重新配置主存储器290的区域分区,可以获得足够的空间以避免向外部装置交换程序或数据而导致的开销和性能代偿。将在随后参照图4A-4B更详细地讨论元存储在数据区域中的数据的结构。

一种示例性存储器映射300显示了将字节可寻址非易失性读写主存储器290分区为多个区域的一种分区。主存储器290具有用于存储器字节的从A到J的物理地址范围。存储器地址0对应于A,而最大存储器地址对应于J。

ROM区域310跨越了存储器地址范围A-B。第一持久性区域320跨越了存储器地址范围C-D、和E-F。暂存区域330跨越了存储器地址范围D-E、和F-G。第二持久性区域340跨越了存储器地址范围G-H。元数据区域350跨越了存储器地址范围I-J,在 存储器地址范围B-C复制此区域的副本355。元数据副本区域355能够用于恢复元数据区域350的讹误。

示例性存储器映射300示例出了可存储在主存储器290中的与计算机的启动进程相关联的若干程序。这些程序存储在ROM区域310和第一持久性区域320中。引导装载程序312存储在存储器290的ROM区域310中。引导装载程序312在对处理器210已知的第一预定位置处就地可运行。该预定位置可专用于计算机的架构。所例示的引导装载程序312在地址A(即,存储器地址0)开始运行。

引导装载程序312被配置为加载高级模块。在一个实施例中,引导装载程序312是一阶引导装载程序(FSBL),而高级模块是二阶引导装载程序(SSBL)322。在另一实施例中,高级模块是操作系统或者超管理器324。高级模块在持久性区域320中其位置处至少部分地就地可运行。处理器210通常经由引导装载程序312从元数据区域350中的内容确定用于操作系统或超管理器324的初始化代码326在存储器L中的位置,或者确定SSBL 322的起始在存储器L’中的位置,后续地将参照图4A-4B更详细地讨论。然后从引导装载程序312将运行的控制转移至高级模块,高级模块要么是位置L处的用于操作系统或超管理器324的初始化代码326、要么是位置L’处的SSBL322,SSBL 322最终转而又将控制转移至位置L处的初始化代码326。初始化代码326还可以初始化文件系统驱动器327,并且安装计算机的文件系统328以使文件系统中的程序和数据文件能够被访问。存储在持久性区域320中的程序文件和数据文件中的一些可被存储在文件系统328中,并且可使用文件系统驱动327访问。

由于SSBL 322和操作系统或超管理器324在持久性区域320中的其存储位置处就地可运行,因此避免了在运行将这些模块322、324加载到存储器中的步骤。这种步骤可能包含于操作系统或超管理器在运行之前从辅助存储器被加载到易失性存储器中的系统中。

除了存储器地址A之外,还可预定对应于元数据区域350、355的起始存储器地址B和I。因此,引导装载程序312知道去哪里寻找元数据区域,并且由此知道去哪里获取定义存储器290的区域组织的数据、和地址L或L’。

现在就强制执行对存储器290的区域的访问许可、参照图2-3回到计算机200的操作,计算机200包括至少一个强制执行机构。每个强制执行机构强制执行由元数据定义的用于主存储器290的不同区域的至少一个操作属性。

访问许可强制执行机构强制执行访问许可操作属性。在一个实施例中,计算机200的访问许可强制执行机构包括MMU 220和介质控制器280。MMU 220将程序可视的 逻辑(或虚拟)存储器空间转换为存储器中的物理地址,诸如存储器290,并且通过不允许对程序本不应该访问的存储器进行漫游访问而提供存储器保护。

MMU 200还可对主存储器290的一个或多个区域强制执行访问许可操作属性,包括元数据区域、持久性区域、暂存区域、或ROM区域。存储在MMU 220中或者存储在存储器中的任意位置处并可由MMU 220访问的表格221中具有对于每个区域的记录。每个记录包含位置字段222和属性字段224。位置字段222指定区域的地址范围,而属性字段224指定访问许可操作属性。在操作期间,当程序请求读取主存储器290中的存储器地址或向其写入存储器地址时,MMU 220访问表格221以确定存储器地址是否落入位置字段222的其中一个之内。如果是,则MMU 220基于对应的属性字段224确定所请求的存储器访问(读取或写入)是否被许可。如果被许可,则允许存储器访问;但如果不被许可,则不允许存储器访问。在一些实施例中,MMU 220对由用户级程序进行的存储器访问强制执行访问许可操作属性,但不对那些由管理员级程序进行的存储器访问进行强制执行。

位置字段222可以以不同方式实施。一种方式使用起始物理地址的子字段、和跟随在该物理地址之后的块尺寸。位置字段222还可包括对应于起始物理地址的起始逻辑地址,从而实施逻辑-物理地址转换。

包括表格221的MMU 220可在启动进程期间由引导装载程序312、SSBL 322和操作系统或超管理器324中的一个或多个进行配置。一旦已完成启动进程,在元数据中针对主存储器290的区域定义的访问许可将被强制执行。然而,在启动进程自身期间,可建立并强制执行不同的访问许可。例如,元数据可指定:持久性区域具有读取访问和写入访问两者,但为了确保持久性区域不被在启动进程期间可能发生的伪(不想要的)写入操作占用,可在启动进程期间将只读访问许可指派给持久性区域。

介质控制器280可对主存储器290的一个或多个区域强制执行只读访问许可操作属性。这通常针对ROM区域完成。还可针对元数据区域完成。可与主存储器290隔离、或者可与主存储器组装在一起的介质控制器280用于控制对主存储器290的结构的访问。介质控制器280的写保护机构(其强制执行只读许可)可配置有位置信息282,该位置信息282指定主存储器290的一个或多个地址范围,在该地址范围内将禁止写入访问。当介质控制器280接收到写入访问时,控制器280确定对应的存储器地址是否落入位置字段282内。如果是,则不许可写入访问;如果不是,则写入访问被许可。位置字段282通常在执行启动进程之前就已连同密码字段284一起被配置了。

在某些情形下,可期望允许对被建立为具有只读许可的地址的写入访问。这种情形的一种是更新存储在ROM区域310中的引导装载程序312。这种情形的另一种是修 改元数据区域350、355以重新配置主存储器290的区域。这种情形的再一种是使用元数据区域350中信息的副本来修复元数据区域350。通常,这些操作是在启动进程期间执行的。向对写保护区域的写入请求供给密码。如果所供给的密码与存储在介质控制器280的密码字段284中密码相匹配,则写入访问被许可。

加密强制执行机构强制执行加密操作属性。在一个实施例中,加密/解密模块270可实施使用(类似于MMU 220的表格221的)表格的机构来强制执行加密操作属性。在此情况中,加密/解密模块270确定通过模块270传递的存储器访问请求是否落入根据指定标准被定义为加密区域的地址范围内。如果是,则模块270在将其传递至存储器290之前加密该写入请求的数据,并且在将其传递给处理器210之前解密从读取请求返回的数据。

内容留存强制执行机构强制执行内容留存操作属性,以响应于关机而保持或丢弃区域的内容。在一个实施例中,丢弃是被程序被动地强制执行的,该程序写入和读取存储在区域中的数据,诸如暂存区域330,该区域具有“丢弃”的内容留存操作属性。这些程序不期望来自先前启动的数据在计算机200关机之后仍然有效,因此假定其不存在。在另一实施例中,丢弃是主动地强制执行的。一种主动机构可以是在关机进程期间由处理器210运行的程序,并且该程序擦除具有“丢弃”的内容留存操作属性的区域的存储器位置。在既具有“丢弃”的内容留存操作属性又具有“加密”的加密属性的区域中,主动丢弃机构可以丢弃用于解密内容的密钥而不擦除该区域的存储器位置。可在计算机200的硬件中实施其他主动丢弃机构。

如已注意到的,在一些实施例中,计算机200还可包括易失性主存储器260,诸如DRAM,其在对计算机的供电循环之后不留存其先前的数据内容。例如,假设暂存区域330(图3)的跨越地址范围D-E的部分被映射到易失性主存储器260而不映射到非易失性主存储器290。在此情况中,存储在主存储器290中的元数据区域350、355的对应数据集指的是位于存储器290外部的存储器260。易失性主存储器260可用于接收和运行SSBL 322的至少一部分的副本、操作系统、或超管理器324、或其他程序。易失性主存储器260还用于存储被确信为将在对计算机200的供电循环时被丢弃的数据,无论是否针对对应区域指定了内容留存操作属性。然而,在主动丢弃机构的情况中,针对对应区域的“丢弃”的指定内容留存操作属性还将在没有电力在计算机200循环而重启发生期间丢弃数据。

现在参照图3和图4A-4B更加详细地考虑元数据区域的内容,示例性元数据数据结构400对应于存储器映射300。数据结构400可为链表。在表头处是元数据条目410。元数据条目链接至区域条目420。区域条目420可链接至另一区域条目420。区域条目 420还可链接至地址空间条目430。地址空间条目430可链接至另一地址空间条目430。存储器的特定区域的元数据的数据集包括区域条目420和一个或多个地址空间条目430。

在更详细地考虑示例性元数据数据结构400之前,参照图4A考虑该数据结构400中使用的不同条目410-430。

元数据条目410具有版本字段412、高级模块初始化代码地址字段414、链接至区域条目420的第一区域字段416、和CRC字段418。

版本字段412表示数据结构400的版本号。如果数据结构400的内容随着时间而进化,则该版本能够用于为包含元数据数据结构400的较早版本的存储器提供向后兼容性。高级模块初始化代码地址字段414存储高级模块初始化代码的地址。当SSBL 322是高级模块时,地址字段414存储SSBL 322的起始地址L’。当操作系统或超管理器324是高级模块时,地址字段414存储其初始化代码326的起始地址L。第一区域字段416存储指向元数据的第一区域条目420的指针。CRC字段418存储从元数据条目410的其他字段导出的、可用于校验元数据条目410的完整性的循环冗赘核对值。

区域条目420具有区域类型字段421、数据留存操作属性字段422、访问许可操作属性字段423、加密操作属性字段424、链接至地址空间条目430的第一地址空间字段425、链接至另一区域条目420的下一区域字段426、以及CRC字段427。

区域类型字段421指定区域条目420所对应的区域的类型:ROM、暂存的、或持久的。由于元数据区域350、355的地址是已知的,可以不存在用于元数据区域350、355中任一个的区域条目420,尽管在一些实施例中是存在的。数据留存操作属性字段422指定:响应于关机、区域中的数据将被保持还是被丢弃。访问许可操作属性字段423指定:是否许可对区域内的存储器地址的读取访问和写入访问。加密操作属性字段424指定:是否对存储在区域中的数据加密,如果是,则指定采用什么类型的加密标准。第一地址空间字段425存储指向区域的第一地址空间条目430的指针。下一区域字段426存储指向元数据的下一区域条目420的指针。空指针表示链表中的最后区域条目420。CRC字段427存储从区域条目420的其他字段导出的、可用于校验区域条目420的完整性的循环冗赘核对值。

地址空间条目430具有起始地址字段432、长度字段434、链接至另一地址空间条目430的下一地址空间字段436、和CRC字段438。

起始地址字段432存储用于区域的存储器地址范围的第一地址。长度字段434通常以字节存储用于该区域的存储器地址范围的长度。由此,区域的相连存储器地址部分的跨度可由起始地址字段432和长度字段434确定。下一地址空间字段436存储指 向区域的下一地址空间条目430的指针。空指针表示用于区域的最后地址空间条目430。CRC字段438存储从地址空间条目430的其他字段导出的、可用于校验该地址空间条目430的完整性的循环冗赘核对值。

现在参照图3和4B考虑对应于存储器映射300的示例性元数据数据结构400,区域条目420A和地址空间430A的数据集定义ROM区域310。区域条目420B和地址空间430B-C的数据集定义第一持久性区域320。区域条目420C和地址空间430D-E的数据集定义暂存区域330。区域条目420D和地址空间430F的数据集定义第二持久性区域340。

元数据可以定义多个持久性或暂存区域的原因有多个。多个区域可能具有不同的操作属性;例如,一个持久性区域可能是加密的(如在区域条目420D中针对第二持久性区域340),而另一持久性区域可能不加密(如在区域条目420B中针对第一持久性区域320)。或者,在可双重启动进入两种不同操作系统的计算机中,一个持久性区域可对应于第一操作系统,而其他持久性区域可对应于第二操作系统。元数据可以定义区域内的多个地址空间的原因也有多个。例如,暂存区域330的一个地址空间430可对应于非易失性主存储器290的一部分,而暂存区域330的另一地址空间430可对应于易失性主存储器260的至少一部分。

在启动进程期间或者在其他时间,可通过计算每个条目410、420、430的对应CRC值并且将计算得到的CRC值与存储在对应CRC字段418、427、438中的值相比较来核对元数据区域350、355中数据的完整性。如果任意CRC值都不匹配,则至少对应条目410、420、430已被讹误。例如,如果元数据区域350的内容被讹误,则元数据区域355的一些或全部有效内容可被复制到元数据区域350,以便于从讹误中恢复。

现在参照图5A-5B考虑计算机的启动进程的流程图。可替换地,图5A-5B的流程图可被视为是启动计算机的方法500的步骤。在一些实施例中,计算机可以是计算机200(图2)。方法500起始于步骤510,使用计算机的处理器访问通信地连接至处理器的字节可寻址非易失性读取主存储器。该存储器被分区为多个区域。ROM区域包括引导装载程序。持久性区域包含在主存储器中至少部分地就地可运行的操作系统或超管理器。在一些实施例中,在512,响应于计算机关机而留存ROM区域、持久性区域、和元数据区域的内容。在一些实施例中,在514,主存储器还包括暂存区域,其内容响应于关机而丢弃。

在520,引导装载程序在主存储器中就地运行。如先前关于示例性存储器映射300(图3)讨论过的,引导装载程序的可运行代码的起始在主存储器中的地址位置对于处理器是已知的。

在530,读取主存储器中的元数据区域从而定位位于持久性区域的高级模块。如先前关于示例性存储器映射300(图3)讨论过的,在引导装载程序的指示下,元数据区域的起始地址位置对于处理器也是已知的。定位高级模块可包括:确定用于高级模块的可运行代码的起始(诸如其初始化代码)在该主存储器中的地址位置。

在540,将控制转移到高级模块中运行。例如可指引处理器在用于高级模块的可运行代码的起始地址位置处继续运行。在一些实施例中,高级模块的部分或者整个高级模块在持久性区域中就地运行。在一些实施例中,高级模块的部分或者整个高级模块可被复制到另一存储器,诸如易失性主存储器,或者被复制到另一区域,诸如暂存区域,并且可在被加载到的存储器或区域的位置处运行。

在一些实施例中,在542,引导装载程序是一阶引导装载程序(FSBL),而高级模块是二阶引导装载程序(SSBL)。在544,SSBL通过读取元数据区域而在持久性区域中定位用于操作系统或超管理器的初始化代码。例如,SSBL可被预先配置为已知初始化代码起始于与其自己的起始地址具有固定偏移之处,固定偏移转而又可由元数据条目410的高级模块初始化代码地址字段414确定。在546,将控制从SSBL转移到操作系统或超管理器初始化代码从而继续并且最终完成启动进程。

在一些实施例中,在552,高级模块是操作系统或超管理器。在554,持久性区域中用于操作系统或超管理器的初始化代码是由引导装载程序读取元数据区域而定位的。例如,可运行初始化代码的起始可从元数据条目410的高级模块初始化代码地址字段414获得。在556,将控制从引导装载程序转移到操作系统或超管理器初始化代码从而继续并且最终完成启动进程。

SSBL和/或操作系统或超管理器初始化代码可执行是启动进程的一部分的其他功能,诸如例如初始化文件系统。一旦被初始化,文件系统可被用于定位存储在例如持久性区域中的程序或数据,包括可以是启动进程的一部分的程序或数据。

在一些实施例中,在此讨论的一个或多个块或步骤是自动的。换言之,设备、系统、和方法自动地发生。如在此并且在所附权利要求中限定的,术语“自动的”或者“自动地”(及其类似变型)应被广义地理解为意指设备、系统和/或进程的受控操作,其使用计算机和/或机械/电气装置而无需人工干预、观察、付出和/或决策。

如上所述,将被领会的是,由本公开提供的计算机和方法在本领域呈现出了显著的进步。尽管已描述并例示了若干具体实施例,但公开不限于所描述和例示的具体方法、形式或部件的布置。

比如,本公开的实施例不限于具有单个处理器的计算机。虽然在图1-2中为了清楚起见例示了单个处理器,但其他示例性系统可包括多核CPU,其中每核包括一个处 理器。在一些情况中,多核可操作以启动单个操作系统或超管理器。在此情况中,其中一个核(称为“启动核”或“核0”)运行在此描述的启动进程而其他核不参与。当操作系统或超管理器的内核掌握系统控制时,其以适当的方式激活其他核。然后,所有核将遵循相同的当前系统配置,包括平等共享存储器(包括各区域)和硬件资源(诸如总线205、存储器260、290、加密/解密模块270以及其他硬件组件)。

在其他情况中,根据在此公开的启动进程,多核可各自操作启动操作系统或超管理器的不同实例。被配置为启动各种不同操作系统的核彼此独立地运作这些。每个核从指派到该核的固定存储器区域访问启动代码;不同核之间的存储器区域可相同或可不相同。每个操作系统和/或超管理器独立于其他操作系统和/或超管理器。在这些情况中,各核之间可以不平等地共享存储器和其他硬件资源。

另外,本公开的实施例不限于个人计算机、台式计算机、笔记本计算机、客户端计算机或者服务器计算机,而是可应用于多种多样的装置中,包括但不限于蜂窝电话、智能电话、个人数字助理、和具有嵌入式计算机的所有类型的电子或电磁装置。本说明书应当被理解为包括在此公开的元素的所有新颖的并且非显而易见的组合、和在本申请以及在后申请中陈列的权利要求中包括的这些元素的任意新颖的并且非显而易见的组合。前述实施例是示意性的,并且不存在对于在本申请或在后申请中请求保护的所有可能组合都必要的单个特征或元素。除非另外指明,方法权利要求的步骤不必以指定顺序执行。类似地,示图中的块或数字(诸如(1)、(2)等)不应当被理解为步骤必须以特定顺序进行。可添加附加的块/步骤、移除一些块/步骤、或者可修改块/步骤的顺序,修改后的顺序仍将落入在此公开的实施例的范围内。进一步地,在不同附图中讨论的方法或步骤可被添加至其他附图中的方法或步骤、或者与其交换。再进一步地,具体的用数字表示的数据值(诸如具体数量、数字、分类等)或其他具体信息应当被解读为是示意地用于讨论实施例。提供这种具体信息不在于限定实施例。本公开不限于上述实施方式,相反,本公开由所附权利要求根据其等同方案的全部范围定义。当权利要求引用“一个”或者“第一”元素或者其等同物时,这种权利要求应被理解为包括一个或多个这种元素的结合,既不要求也不排除两个或更多个这种元素。当权利要求引用“具有”时,该术语应被理解为意指“包括”。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号