用于片上系统的预启动环境的多核框架技术方案

技术编号:24019723 阅读:29 留言:0更新日期:2020-05-02 04:49
本文描述了各个方面。在一些方面,本公开提供了一种在片上系统SoC的预启动环境中实现多核框架的方法,所述SoC包括多个处理器,所述多个处理器包括第一处理器和第二处理器。所述方法包含由所述第一处理器发起将所述SoC启动到预启动环境中。所述方法进一步包含由所述第一处理器调度第二处理器对一或多个启动任务的执行。所述方法进一步包含由所述第二处理器在所述预启动环境中执行所述一或多个启动任务。所述方法进一步包含与所述第二处理器执行所述一或多个启动任务并行地由所述第一处理器执行一或多个另外的任务。

A multi-core framework for on-chip system's pre boot environment

【技术实现步骤摘要】
【国外来华专利技术】用于片上系统的预启动环境的多核框架相关申请的交叉引用本申请要求于2018年9月20日提交的美国申请第16/137,226号的优先权,所述美国申请要求于2017年9月25日提交的美国临时专利第62/562,738号的权益。临时申请的内容通过全文引用的方式并入本文。
本公开的教导总体上涉及片上系统(SoC)集成电路设计,并且在某些方面,涉及SoC的预启动环境。
技术介绍
计算装置是普遍存在的。一些计算装置是便携式的,如移动电话、平板计算机和膝上型计算机。随着此类便携式计算装置的功能的增加,所需的计算或处理功率以及总体上支持此类功能的数据存储容量也增加。除了这些装置的主要功能之外,许多装置还包含支持外围功能的元件。例如,蜂窝电话可以包含实现并支持蜂窝电话呼叫的主要功能和静态相机、视频相机、全球定位系统(GPS)导航、网络浏览、发送和接收电子邮件、发送和接收文本消息、按键通话能力等的外围功能。这些便携式装置中的许多便携式装置包含片上系统(SoC),以在特定装置上实现一或多个主要功能和外围功能。SoC总体上包含嵌入集成电路或芯片中并耦接到本地总线的多个中央处理单元(CPU)核。CPU核可以被进一步布置成一或多个计算集群。SoC总体上可以进一步包含硬件组件和其它处理器。例如,SoC可以包含分组成一或多个子系统的一或多个CPU、具有多个核的CPU、一或多个数字信号处理器等。与如台式计算机和服务器计算机等大型计算装置一样,SoC在通电时依赖于启动序列或启动代码。启动序列是在向SoC首次施加电力时SoC所执行的初始操作集。启动代码实现了初始化并启动SoC(例如,以运行操作系统(OS))的过程(例如,自举)。出于快速存取、低复杂性、空间效率、低成本和安全性的原因,启动代码通常存储在只读存储器(ROM)中。启动序列可以利用内部存储器(例如,在与SoC相同的芯片上的片上存储器,如静态随机存取存储器(SRAM))和复杂的驱动器以便安全地启动SoC以及外部存储器(例如,在与SoC相同的芯片外的片外存储器,包含动态随机存取存储器(DRAM),如双数据速率(DDR)同步DRAM(SDRAM)、低功率DDR(LPDDR)等),如以便节省在SoC具有需要更多内存来启动的更多功能时所使用的内部存储器的量的成本。外部存储器可以与SoC堆叠(例如,应用处理器、调制解调器芯片等)、可以被配置成层叠封装设计、可以完全是外部的(例如,不在与SoC相同的封装上)等。作为启动序列的一部分,为了启动SoC的硬件组件和其它处理中的每个硬件组件或处理器或者硬件组件组或处理器组,可以有一系列启动加载器和切换安全可执行件(例如,固件可执行件等,也称为固件映像)。具体地,SoC的硬件组件和其它处理中的每个硬件组件或处理器可能需要使用特定硬件组件的固件映像来启动(例如,安全地启动)。可以使用链加载方法通过执行固件映像中的每个固件映像来启动SoC的各种硬件组件。SoC上的硬件组件的数量越多,需要执行的SoC的固件映像的数量就越多。因此,SoC的启动时间(例如,用于组件的安全启动和非安全启动)是固件映像的数量的函数。另外,硬件组件中的一或多个硬件组件的启动可以是受到保护的,如以便满足某些应用中对强完整性检查、认证或其它安全性算法的要求,从而确保固件映像未被篡改或损坏并且源自预期方。因此,SoC可以实施哈希算法(例如,SHA256、SHA384、SHA512等)、加密算法(例如,AES变体)和/或数字签名算法(例如,RSA2K、RSA4K、ECCP384等),以检查固件映像的完整性和认证。进一步地,即使未实现安全启动,仍可以使用哈希算法如在从闪存媒体或无闪存接口或互连(例如,USB、PCIe等)启动时强制执行固件映像的完整性检查。这些各种算法可以在SoC上的硬件或软件中实施并且由于计算复杂性而可能导致SoC的启动时间增加。固件映像的数量越多,此类算法在固件映像上运行的时间就越长,从而增加了启动时间。在某些情景中,SoC可能需要满足某些启动时间关键性能指标(KPI)度量。例如,SoC的某些组件可能需要在某些时间段(例如,约500毫秒)内启动,以满足KPI(例如,使第一寿命符号通电、使显示器上的闪屏通电、使OS主屏幕通电、在调制解调器或WiFi或其它子系统启动并准备连接到网络时通电、使汽车的后置相机、安全启动对应装置等通电)。随着SoC上的组件数量的增加,满足KPI会变得困难。因此,需要减少SoC启动时间。统一可扩展固件接口(UEFI)是定义OS与OS在其上执行的硬件平台(例如,SoC)之间的软件接口的规范。例如,UEFI区分预启动环境(例如,在OS在SoC上执行之前)与其中OS在SoC上执行的启动后环境。这允许OS以跨硬件的方式设计,因为软件接口创建了OS与SoC之间的接口。UEFI规范以及平台初始化(PI)规范定义了包含SoC的一系列启动阶段(例如,安全(SEC)阶段、预EFI初始化阶段(PEI)、驱动器执行环境(DXE)阶段、启动装置选择(BDS)阶段、OS加载器阶段等)的预启动环境(例如,在启动过程完成并且OS完全运行之前)。预启动环境可以通过在SoC处加载并执行实现预启动环境的固件映像来实施。预启动环境可以提供某些驱动器、框架、协议和接口并且还允许某些应用在预启动环境中在SoC上运行。例如,OS可以先在加载OS的预启动环境中执行启动管理器应用。还可以在预启动环境中运行其它应用,如测试和验证CPU核、存储器等的功能的应用;(例如,通过快速启动)将固件映像(例如,在工厂)编程到SoC的应用;等。
技术实现思路
以下呈现了对本公开的一或多个方面的简化概括,以提供对此类方面的基本理解。此概括不是对本公开的所有设想特征的全面概览,并且既不旨在标识本公开的所有方面的关键元素或重要元素,也不旨在描绘本公开的任何或所有方面的范围。其唯一的目的是以简化的形式呈现本公开的一或多个方面的某些概念,作为随后呈现的更详细的描述的序言。在一些方面,本公开提供了一种在片上系统(SoC)的预启动环境中实现多核框架的方法,所述SoC包括多个处理器,所述多个处理器包括第一处理器和第二处理器。所述方法包含由所述第一处理器发起将所述SoC启动到预启动环境中。所述方法进一步包含由所述第一处理器调度第二处理器对一或多个启动任务的执行。所述方法进一步包含由所述第二处理器在所述预启动环境中执行所述一或多个启动任务。所述方法进一步包含与所述第二处理器执行所述一或多个启动任务并行地由所述第一处理器执行一或多个另外的任务。在一些方面,本公开提供了一种片上系统(SoC),所述SoC包括第一处理器和第二处理器。所述第一处理器被配置成发起将所述SoC启动到预启动环境中。所述第一处理器被配置成调度第二处理器对一或多个启动任务的执行。所述第一处理器被配置成与所述第二处理器执行所述一或多个启动任务并行地执行一或多个另外的任务。所述第二处理器被配置成在所述预启动环境中执行所述一或多个启动任务。在一些方面,本公开提供了一种非暂时性计算机可读存储媒体,所述非暂时性计算机本文档来自技高网
...

【技术保护点】
1.一种在片上系统SoC的预启动环境中实现多核框架的方法,所述SoC包括多个处理器,所述多个处理器包括第一处理器和第二处理器,所述方法包括:/n由所述第一处理器发起将所述SoC启动到预启动环境中;/n由所述第一处理器调度第二处理器对一或多个启动任务的执行;/n由所述第二处理器在所述预启动环境中执行所述一或多个启动任务;以及/n与所述第二处理器执行所述一或多个启动任务并行地,由所述第一处理器执行一或多个另外的任务。/n

【技术特征摘要】
【国外来华专利技术】20170925 US 62/562,738;20180920 US 16/137,2261.一种在片上系统SoC的预启动环境中实现多核框架的方法,所述SoC包括多个处理器,所述多个处理器包括第一处理器和第二处理器,所述方法包括:
由所述第一处理器发起将所述SoC启动到预启动环境中;
由所述第一处理器调度第二处理器对一或多个启动任务的执行;
由所述第二处理器在所述预启动环境中执行所述一或多个启动任务;以及
与所述第二处理器执行所述一或多个启动任务并行地,由所述第一处理器执行一或多个另外的任务。


2.根据权利要求1所述的方法,其中在所述预启动环境中,操作系统不在所述SoC上执行,并且所述方法进一步包括:
通过加载所述操作系统在所述预启动环境中完成执行;以及
由所述操作系统调度代码在所述第一处理器和所述第二处理器上的并行执行。


3.根据权利要求1所述的方法,其进一步包括:
由所述第二处理器将与所述一或多个启动任务相关的服务调用引导到所述第一处理器;
由所述第一处理器执行对应于所述服务调用的功能;以及
由所述第一处理器向所述第二处理器返回所述功能的结果。


4.根据权利要求3所述的方法,其中所述引导是使用提供到所述第二处理器的第一系统表执行的,所述第一系统表被配置成将所述第二处理器上的所述服务调用引导到在所述第二处理器上运行的第一实体,在所述第二处理器上的所述第一实体被配置成与在所述第一处理器上运行的第二实体通信,并且其中所述执行和所述返回是使用提供到所述第一处理器的第二系统表执行的,所述第二系统表被配置成使所述第二实体执行对应于所述服务调用的所述功能并且将所述功能的所述结果返回到所述第一实体。


5.根据权利要求4所述的方法,其中所述第二系统表包括统一可扩展固件接口UEFI系统表。


6.根据权利要求3所述的方法,其进一步包括:
由所述第二处理器接收所述服务调用;
在第一缓冲器中存储对应于所述服务调用的第一消息;
由所述第二处理器设置与所述第一缓冲器相关联的第一标记以向所述第一处理器指示所述第一缓冲器包含所述第一消息;
由所述第一处理器基于所述第一标记确定所述第一缓冲器包含所述第一消息;
由所述第一处理器从所述第一缓冲器中读取所述第一消息;
由所述第一处理器基于所述第一消息执行对应于所述服务调用的所述功能;
由所述第一处理器在第二缓冲器中存储对应于所述功能的所述结果的第二消息;
由所述第一处理器设置与所述第二缓冲器相关联的第二标记以向所述第二处理器指示所述第二缓冲器包含所述第二消息;
由所述第二处理器基于所述第二标记确定所述第二缓冲器包含所述第二消息;以及
由所述第二处理器从所述第二缓冲器中读取所述第二消息。


7.根据权利要求3所述的方法,其中所述服务调用包括存储器分配请求、与所述第二处理器的验证相关的调用或与编程所述SoC相关的调用中的至少一个。


8.根据权利要求1所述的方法,其中所述第二处理器和所述第一处理器被配置成使用共享的存储器空间进行通信,所述共享的存储器空间包括一或多个标记和与所述一或多个标记相关联的一或多个缓冲器,其中所述一或多个标记用于同步所述第一处理器与所述第二处理器之间的消息传递。


9.根据权利要求8所述的方法,其中对于所述一或多个标记中的每个标记,多个计算核中的每个计算核被经启用以读取所述标记,并且所述多个计算核中的仅一个计算核经启用以为写入所述标记。


10.根据权利要求1所述的方法,其进一步包括:
由所述第一处理器确定所述第二处理器的状态;以及
基于所述第二处理器的所述状态向所述第二处理器发送中断或打开所述第二处理器中的至少一个。


11.一种片上系统SoC,其包括:
第一处理器,所述第一处理器被配置成:
发起将所述SoC启动到预启动环境中;
调度第二处理器对一或多个启动任务的执行;并且
与所述第二处理器执行所述一或多个启动任务并行地执行一或多个另外的任务;以及
所述第二处理器,所述第二处理器被配置成:
在所述预启动环境中执行所述一或多个启动任务。


12.根据权利要求11所述的SoC,其中在所述预启动环境中,操作系统不在所述SoC上执行,并且其中所述第一处理器被进一步配置成:
通过加载所述操作系统在所述预启动环境中完成执行,并且其中所述操作系统被配置成调度代码在所述第一处理器和所述第二处理器上的并行执行。


13.根据权利要求11所述的SoC,其中:
所述第二处理器被进一步配置成:
将与所述一或多个启动任务相关的服务调用引导到所述第一处理器;并且
所述第一处理器被进一步配置成:
执行对应于所述服务调用的功能;并且
向所述第二处理器返回所述功能的结果。


14.根据权利要求13所述的SoC,其中所述引导是使用提供到所述第二处理器的第一系统表执行的,所述第一系统表被配置成将所述第二处理器上的所述服务调用引导到在所述第二处理器上运行的第一实体,在所述第二处理器上的所述第一实体被配置成与在所述第一处理器上运行的第二实体通信,并且其中所述执行和所述返回是使用提供到所述第一处理器的第二系统表执行的,所述第二系统表被配置成使所述第二实体执行对应于所述服务调用的所述功能并且将所述功能的所述结果返回到所述第一实体。


15.根据权利要求14所述的SoC,其中所述第二系统表包括UEFI系统表。


16.根据权利要求13所述的SoC,其中:
所述第二处理器被进一步配置成:
接收所述服务调用;
在第一缓...

【专利技术属性】
技术研发人员:A·艾扬格Y·纳拉亚纳D·帕克·阿里S·R·查姆查拉D·戴维斯·库拉
申请(专利权)人:高通股份有限公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1