引导片上系统器件的制作方法

文档序号:11635154阅读:313来源:国知局
引导片上系统器件的制造方法与工艺



背景技术:

电子设备可包括易失性系统存储器、非易失性存储器和辅助储存器。电子设备的易失性系统存储器可用一个或多个易失性存储器设备来实现。如果电力从存储器设备被移除,则易失性存储器设备就会丢失其数据。非易失性存储器和辅助储存器可使用一个或多个非易失性(或持久性)存储器或存储设备来实现。即使电力从非易失性存储器和存储设备被移除,非易失性存储器和存储设备也保持其存储的内容。

附图说明

关于以下附图描述一些实现方式。

图1a至图1b是根据各种实现方式的示例片上系统(soc)器件的框图。

图2是根据一些实现方式的引导包括soc器件的系统的示例进程的流程图。

图3a至图3b是根据一些实现方式的包括soc器件的示例系统的框图。

图4是根据进一步的实现方式的在图3a或图3b的系统中执行的示例进程的流程图。

具体实施方式

随着集成电路技术的发展,可被并入到集成电路芯片中的特征数已经增加。其上提供有处理器、片上存储器和其他组件的集成电路芯片可被称为片上系统(soc)器件。soc器件一般可指任何芯片,该芯片包括封装在封装内的集成电路管芯或管芯排列,并且在芯片上提供有至少一个处理器和一个片上存储器。“片上”存储器可指与处理器和可能的其他组件安装在同一个芯片上的存储器设备。

传统上,为了启动系统,可执行系统的引导程序,其中从soc器件外部(在soc器件之外)的各自的存储设备加载引导代码和操作系统。引导系统涉及从初始状态重新启动系统的操作系统,其中初始状态是操作系统的指定启动状态。当引导系统时,未存储到持久性储存器的数据将会丢失。引导系统以从初始状态启动是相对于将系统恢复到先前状态而言。

在一些示例中,引导代码可从非易失性存储器(例如,闪速存储器设备)加载,而操作系统可从辅助储存器加载,辅助储存器可用固态驱动器(用一个或多个闪速存储器设备来实现)和/或基于磁盘的储存器驱动器来实现。

引导代码和操作系统从各自的存储器或存储设备被复制到soc器件的片上存储器。将引导代码和操作系统从片外存储器或存储设备复制到soc器件的片上存储器可能花费相当长的时间,可能延长引导系统所需的时间。

根据本公开的一些实现方式,soc器件提供有存储信息的片上非易失性存储器,该信息用于允许soc器件(或更一般地,包括soc器件的系统)使用片上非易失性存储器中的存储信息来启动系统。引导系统可指只引导soc器件,或引导soc器件和系统的其他组件,包括硬件设备和/或机器可执行指令。

存储在soc器件的片上非易失性存储器上的信息可包括引导代码(机器可执行指令)和系统代码,其中系统代码包括从操作系统和管理程序代码中选择的至少一种。操作系统和管理程序代码也可实现为机器可执行指令。

操作系统可包括内核,该内核通过系统中硬件资源的代码(例如,应用程序或其他代码)管理访问、执行文件访问管理(管理系统中的文件和其他数据的访问)、执行进程管理(管理进程的执行,诸如,应用程序的进程)等等。除了内核之外,操作系统还可包括附加的逻辑,附加的逻辑可执行指定的任务(这种附加的逻辑的示例可包括用户界面应用程序、库等)。

管理程序代码在系统中被执行,以执行系统的硬件资源的虚拟化。使用管理程序可在系统中实现多个虚拟机,其中每个虚拟机包括各自的操作系统和应用程序。通过管理程序执行虚拟机对硬件资源的访问。

通过从片上非易失性存储器执行引导代码完成引导。从电力从系统被移除的模式(诸如关机状态(其中电力从系统被移除))或低电力状态(诸如,睡眠状态或休眠状态)引导系统。电力从系统被移除可指电力仅从系统的一部分或整个系统被移除。可从soc器件的片上非易失性存储器本地执行(xip)引导代码,是指从片上非易失性存储器执行引导代码而不必首先将引导指令复制到易失性主存储器。在其他示例中,引导代码可被复制到另一存储器(易失性或非易失性存储器),另一存储器也可以在芯片上。这种其他的存储器可包括静态随机存取存储器(sram)、缓存、主存储器或另一存储器。作为示例,soc器件上的存储器(例如,sram等)可被用来在存储器被用作缓存之前从存储器执行代码。

在引导序列的末尾,引导代码从soc器件的片上非易失性存储器加载系统代码(操作系统和/或管理程序代码)。用于由soc器件的处理器执行的系统代码的加载可在不访问soc器件外部(在soc器件之外)的储存器的情况下完成。

图1a是根据一些实现方式的示例soc器件100的框图。soc器件100包括处理器102和片上非易失性存储器104。尽管仅描绘了一个处理器102,需要注意的是,soc器件可包括多个处理器。在一些示例中,处理器102可以是处理器核。在soc器件100中可存在多个处理器核。

处理器102和片上非易失性存储器104可被形成在soc器件100的通用集成电路管芯101上。可替代地,处理器102和非易失性存储器104可被提供在完全封装在通用封装内的多个集成电路管芯上。封装还支持soc器件100的触点(例如,电气触点、光学元件等)。在一些示例中,片上非易失性存储器104可包括非暂时性存储介质。

非易失性存储器104可用各种不同类型的非易失性存储器技术中的任意一种实现。作为示例,非易失性存储器104可包括以下任意一种或一些的组合:电阻式随机存取存储器(rram)、忆阻器存储器、相变随机存取存储器(pcm、pcram或pram)、磁阻式随机存取存储器(mram)、自旋转移矩随机存取存储器(stt-ram)、闪速存储器、备用电力支持(例如,电池支持)动态随机存取存储器(dram)等等。

在一些实现方式中,非易失性存储器104可以是字节可寻址存储器。字节可寻址存储器是其中数据的单个字节可读取和写入的存储器。换句话说,数据的单个字节可从字节可寻址存储器读取或写入到字节可寻址存储器,而不读取/写入存储器的其他部件。字节可寻址存储器区别于存储器的地方是读取操作或写入操作必须对数据块执行,而数据块大于一个字节。

非易失性存储器104可在非易失性存储器的多个逻辑区中存储各种信息。存储器的“逻辑区”可指存储器的定义片段,其中片段可包括连续的存储位置或非连续的存储位置。

在图1a的示例中,非易失性存储器104的逻辑区包括至少一个第一区106,第一区106用于存储引导代码108和系统代码110(操作系统和/或管理程序代码)。此外,非易失性存储器104包括用于存储某些数据的暂存区112。在一些示例中,包含在暂存区112中的数据可包括在传统系统中的易失性主存储器中存储的数据。在这样的示例中,通过在非易失性存储器104中提供暂存区112来存储易失性主存储器的信息,不必在包括soc器件100的系统中提供单独的易失性主存储器。

暂存区112中的数据的示例包括:程序的机器可执行指令,被驱动器、操作系统和程序进程使用的临时数据、临时文件数据,关于操作系统的当前状态、裸机代码的当前状态、某些应用程序的当前状态、某些硬件设备的当前状态的信息,等等。

当包括soc器件100的系统(图3a和图3b示出了系统的示例)响应于电力循环被引导,当电力从该系统被移除时,暂存区112的数据被丢弃(被覆盖或删除)。电力循环是指从soc器件100(或包括soc器件100的系统)移除电力,然后紧接着将电力施加到soc器件100(或包括soc器件100的系统)。

然而,如果系统从电力从系统已经被移除的模式被恢复到先前状态,则暂存区112中的数据被保持和重用。将系统恢复到先前状态可基于可存储在非易失性存储器104中的状态信息(未示出)。状态信息可包括从处理器102的寄存器和缓存(缓存可以是处理器102的部分或在处理器102的外部)复制的数据。寄存器和缓存是易失性储存器,使得如果电力从soc器件100被移除,则寄存器和缓存中的数据将丢失。寄存器的示例可包括程序计数器的当前值、关于系统配置的信息、通过算术运算产生的数据等等。缓存可存储程序的机器可执行指令,也可存储数据,其中指令和数据可以是从另一储存器取回到缓存中的副本。状态信息还可包括关于在进入低电力状态之前在系统中被执行的机器可执行指令(例如,操作系统、应用程序代码等)的当前执行状态的信息。状态信息还可包括由机器可执行指令处理的当前数据。状态信息还可包括关于硬件设备的状态的信息。

存储在第一区106中的信息是持久的,即使在系统从电力从系统已经被移除的模式被引导的情况下。因此,响应于使系统被引导的系统的电力循环,包含在暂存区112中的数据被丢弃,而第一区106中的信息被保持和使用。

作为示例,引导代码108可包括如下代码:引导程序(用于加载其他代码诸如进一步的引导代码、操作系统或管理程序代码的机器可执行指令)、基本输入/输出系统(bios)代码或统一可扩展固件接口(uefi)代码(bios代码或uefi代码包括用于执行系统初始化的机器可执行指令)、文件系统等等。存储在片上非易失性存储器104中的文件系统可包括用于描述存储在包括soc器件100的系统中的文件和路径的信息。

图1b是根据进一步的实现方式的soc器件100的框图。在图1b中,除了非易失性存储器104中的暂存区112之外,图1a的第一区106与只读存储器(rom)区120和持久区122对应。

rom区120和持久区122都包含即使电力从soc器件100被移除也将被持久保持的数据或其他信息。

rom区120可用来存储某些信息,诸如,第一阶段引导程序124。在其他示例中,rom区120还可用来存储soc器件100的某些管理信息。

第一阶段引导程序124是在soc器件100启动时执行的第一引导代码。第一阶段引导程序124用来启动第二阶段引导程序126,第二阶段引导程序126可存储在持久区122中。第二阶段引导程序126可执行与启动soc器件100相关的附加功能。第二阶段引导程序126可用来调用进一步的引导代码,诸如,bios或uefi代码。第二阶段引导程序126还可加载操作系统或管理程序代码。更一般地,第一阶段引导程序124是引导代码的第一部分的示例,而第二阶段引导程序126是引导代码的第二部分的示例。

在图1b的示例中,持久区122还存储其他代码,包括bios或uefi代码128和系统代码110(操作系统和/或管理程序代码)。在其他示例中,第二阶段引导程序126和/或bios或uefi代码128可存储在rom区120中,而不是在持久区122中。

需要注意的是,rom区120的内容可被更新,诸如,更新存储在rom区120中的第一阶段引导程序124、第二阶段引导程序126或bios或uefi代码128。rom区120的内容的更新由soc器件100上执行的受信任进程执行。

在一些示例中,rom区120和持久区122可用来存储信息,该信息可存储在外部非易失性存储器和/或传统系统的辅助储存器中。通过采用soc器件100中的片上非易失性存储器104,soc器件100外部的某些存储器和/或存储设备可被省略,诸如,易失性主存储器、闪速存储器和/或辅助储存器。通过省略这种外部存储器和/或存储设备,与包括soc器件100的系统相关的成本可由于系统中的组件数量的减少而降低。

如图1b所示,非易失性存储器104还可存储元数据130,元数据130可包括关于片上非易失性存储器104以及soc器件100的各种参数和信息。元数据130可包括结构化的元数据或非结构化的元数据。结构化的元数据是指具有特定的格式或模式的元数据,而非结构化的元数据是指没有特定的格式或模式的元数据。

元数据130可包括非易失性区信息。非易失性区信息可包括存储器地址值,该存储器地址值指定非易失性存储器104中的不同的多个区(包括rom区120、持久区122和暂存区112以及其他区)中的每个区的起始位置。在其他示例中,非易失性存储器区信息可包括指向非易失性存储器区的逻辑分区的信息,并且还描述了每个区的不同属性。

元数据130还可包括引导-恢复指示符,该引导-恢复指示符用于指示在从电力已经从系统被移除的模式启动时系统是要被恢复还是被引导。引导-恢复指示符可以是标志的形式,该标志可被设置成多个不同值中的一个。如果引导-恢复指示符被设置为第一值,则指示当系统从电力已经从该系统被移除的模式启动时,该系统要被恢复。如果引导-恢复指示符被设置为不同的第二值,则指示当系统从电力已经从该系统被移除的模式启动时,该系统要被引导。

为了将系统从电力已经从该系统被移除的模式恢复,可从片上非易失性存储器104读取状态信息(关于soc器件100或包括soc器件100的系统的先前状态)。

在一些示例中,元数据130还可以在非易失性存储器104中定义一个或多个安全区,该安全区存储可用于执行soc器件100的安全操作的信息。安全区是由soc器件100的预定义或指定的实体可访问的非易失性存储器104的区域,使得未授权的实体(例如,恶意代码等)不能够访问这样的安全区。

图2是根据一些实现方式的用于引导包括soc器件100的系统的进程的流程图。图2的进程可由soc器件100执行。soc器件100将引导代码108和系统代码110存储(在202)在片上非易失性存储器104中。系统代码110包括从操作系统和管理程序代码中选择的至少一种。

通过从片上非易失性存储器104执行引导代码108,从电力从soc器件100被移除的模式引导(在204)系统。该引导包括从片上非易失性存储器104加载soc器件100中的系统代码110,而不访问soc器件100外部的储存器。在一些示例中,引导代码108可从片上非易失性存储器104本地执行(而不需要首先将引导代码108从片上非易失性存储器104复制到易失性主存储器)。

图3a示出了系统300a的示例,系统300a包括soc器件100和外部非易失性存储器302(其在soc器件100外部)。系统的示例可包括以下中的任一种或一些组合:台式计算机、笔记本计算机、平板计算机、服务器计算机、智能电话、个人数字助理、移动电话、可穿戴设备、通信设备、存储服务器、游戏用具、智能传感器、物联网(lot)设备、家庭控制器、系统控制器、微控制器等等。

外部非易失性存储器302可存储元数据304,并且可包括暂存区306和持久区308,暂存区306和持久区308被设置成存储与图1b的片上非易失性存储器104中各自的暂存区112和持久区122类似的内容。外部非易失性存储器302的存在增加了在片上非易失性存储器302中可用的容量。元数据304可包括关于外部非易失性存储器302的区306和区308的信息。

除了soc器件100和外部非易失性存储器302,系统300a还可包括其他组件,包括外围或i/o设备310(例如,网络接口控制器、视频卡控制器、显示设备等)。

图3b示出了另一示例系统300b,除了图3a的soc器件100、外部非易失性存储器302和外围设备310之外,系统300b还包括易失性主存储器320。易失性主存储器320在soc器件100的外部并且可使用动态随机存取存储器(dram)、静态随机存取存储器(sram)或任何其他类型的易失性存储器实现。在存在易失性主存储器320的示例中,各自的片上非易失性存储器104和外部非易失性存储器302的暂存区112和/或306将不需要存储存储在易失性主存储器320中的信息。

图4是根据一些实现方式的图3a的启动系统300a的示例进程的流程图。作为从电力从系统300a被移除的模式启动系统300a的一部分,soc器件100的处理器102从片上非易失性存储器104中的rom区120执行(在402)第一阶段引导程序124。不需要访问或初始化soc器件100外部的任何外围设备,处理器102可从片上非易失性存储器104读取(在404)元数据130(并且更具体地,上面讨论的引导-恢复指示符),并且基于元数据130确定是引导系统300a还是恢复系统300a。

下面假设引导-恢复指示符指定系统300a要被引导。

第一阶段引导程序124搜索(在406)第二阶段引导程序126,如图1b所描绘的,第二阶段引导程序126可被存储在片上非易失性存储器104的持久区122中。在其他示例中,第二阶段引导程序126可被存储在外部非易失性存储器302中。元数据130可用于标识第二阶段引导程序126所处的位置。

然后,第一阶段引导程序124将控制权转移(在408)到第二阶段引导程序126。第二阶段引导程序126搜索(在410)系统代码110。可基于元数据130定位系统代码110,元数据130可包括标识系统代码110的位置的信息。第二阶段引导程序126加载(在412)系统代码110并将控制权转移到系统代码110。然后,系统代码110被执行(在414),系统代码110继续soc器件100的操作。

第一阶段引导程序124、第二阶段引导程序126、bios或uefi代码128以及系统代码110可在非易失性存储器104中本地执行,或可替代地,前述代码的任一种可在执行代码启动之前首先被转移到暂存区112。

与图4中描绘的类似的系统启动进程可用图3b的系统300b执行,除了使用易失性主存储器320之外。易失性主存储器320的整个地址空间被考虑为暂存区。当易失性主存储器320存在时,可用于持久区122和rom区120的片上非易失性存储器104的存储容量可增加,以扩展存储容量。在一些示例中,当易失性主存储器320存在时,可从非易失性存储器104省略暂存区112。在其他示例中,当易失性主存储器320存在时,暂存区112仍可存在于非易失性存储器104中。

在一些实现方式中,策略可与非易失性存储器104中各自的逻辑区相关联。这些策略可使用硬件逻辑来实施,诸如处理器、存储器控制器或其他硬件组件。策略的示例可包括用于rom区120的只读策略。只读策略可指定不允许对rom区120的写入,除非由被授权的指定实体来执行对rom区120的内容的更新。另一示例策略可以是与暂存区112相关联的策略,该策略指定暂存区112中的数据响应于引导而被丢弃。进一步的策略可与持久区122相关联,该策略指定存储在持久区122中的信息免受虚假的写入的影响,诸如在引导进程期间。此外,策略可与元数据130相关联,该策略可指定元数据130要被写保护,除了在执行存储器区的管理的时期。

在一些实现方式中,非易失性存储器104或302的一个或多个区(例如,存储元数据的区,持久区等)可使用密钥被加密。此外,受信任的管理机制可用于使用密钥维护或更新元数据、rom区120的内容以及执行加密和解密。

在一些实现方式中,soc器件100可包括电熔断(efuse)存储器140(图1b),电熔断存储器140是只能被编程一次的一次可编程存储器。作为示例,efuse存储器可用于存储片上非易失性存储器104的指定属性的信息。这样的属性的示例可包括只读属性(用于指定一区域是否只读)或其他属性。存储在efuse存储器中的值可允许或阻断处理器102访问片上非易失性存储器104或外部非易失性存储器302的某些区。作为示例,efuse存储器中的信息可允许对非易失性存储器的示例给定区a的写入。在对非易失性存储器的写入之后,一次写入被执行以改变efuse存储器从而防止对非易失性存储器的区a的进一步写入。

在soc器件100中包括多个处理器的实现方式中,soc器件100中的多个处理器中的选定的一个可用于执行引导任务。这可出于安全原因而执行。例如,soc器件100中的某些处理器可用于指定任务,作为对安全引导的硬件保障。

尽管上面讨论的各种示例描绘了片上非易失性存储器104中的一个暂存区和一个持久区,但是要注意的是,片上非易失性存储器104可包括多个暂存区和多个持久区用于各自的不同操作系统。

在以上描述中,阐述了大量细节,以提供对本文公开的主题的理解。然而,实现方式可在没有这些细节中的一些细节的条件下实践。其他实现方式可包括上面讨论的细节的改变和变型。旨在所附权利要求覆盖这样的改变和变型。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1