CN108351775A - 嵌入式多处理器系统的启动时间优化的方法和系统 - Google Patents

嵌入式多处理器系统的启动时间优化的方法和系统 Download PDF

Info

Publication number
CN108351775A
CN108351775A CN201680063080.2A CN201680063080A CN108351775A CN 108351775 A CN108351775 A CN 108351775A CN 201680063080 A CN201680063080 A CN 201680063080A CN 108351775 A CN108351775 A CN 108351775A
Authority
CN
China
Prior art keywords
grade
processor
startup
embedded
application software
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201680063080.2A
Other languages
English (en)
Other versions
CN108351775B (zh
Inventor
Y·V·马拉泰
K·S·漆尼什
R·加尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Texas Instruments Inc filed Critical Texas Instruments Inc
Priority claimed from PCT/US2016/059797 external-priority patent/WO2017075623A1/en
Publication of CN108351775A publication Critical patent/CN108351775A/zh
Application granted granted Critical
Publication of CN108351775B publication Critical patent/CN108351775B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4405Initialisation of multiprocessor systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Closed-Circuit Television Systems (AREA)

Abstract

在所描述实例中,一种嵌入式多处理器系统(100)包含:多处理器芯片上系统SOC(108);耦接到所述多处理器SOC(108)的存储器(114),所述存储器(114)存储被分割成初始启动级和至少一个额外启动级的应用程序软件;以及二级启动加载程序,其被配置成启动将所述初始启动级加载到所述多处理器SOC(108)的至少一个处理器上。开始执行所述初始启动阶段,且禁止数据从所述初始启动级流动到所述至少一个额外启动级。所述应用程序软件被配置成启动将所述至少一个额外启动级的第二启动级加载到所述多处理器SOC(108)的至少一个其它处理器上,并使得数据能够在所述初始启动级与所述第二启动级之间流动。

Description

嵌入式多处理器系统的启动时间优化的方法和系统
本公开大体上涉及嵌入式多处理器系统,且更具体地说,涉及在此类系统上执行的应用程序的启动时间优化。
背景技术
一种等级的安全系统(被称作高级辅助驾驶系统(ADAS))已引入到汽车中以减小人类操作失误。此类系统可提供各种功能性,诸如后视相机、电子稳定性控制和基于视觉式行人检测系统。出于安全性考虑,汽车安全系统的启动时间可为关键的,且对于整体用户体验至关重要。
举例来说,可以提供例如后视相机系统(RVCS)的汽车安全系统,从而在车辆的倒档啮合时展示车辆的后视图。RVCS可以简单地显示后视图,或可以包含检测障碍并向驾驶员提供视觉和/或听觉警告的较多智能。在任一情形下,出于安全性考虑,RVCS的启动时间极其重要,且如果启动时间过长,那么会影响整体用户体验。
发明内容
在针对嵌入式多处理器系统中的启动时间优化所描述的实例中,一种嵌入式多处理器系统包含:多处理器芯片上系统(SOC);耦接到所述多处理器SOC的存储器,所述存储器存储被分割成初始启动级和至少一个额外启动级的应用程序软件;和二级启动加载程序,其被配置成启动将所述初始启动级加载到所述多处理器SOC的至少一个处理器上。开始执行所述初始启动阶段,且禁止数据从所述初始启动级流动到所述至少一个额外启动级。所述应用程序软件被配置成启动将所述至少一个额外启动级的第二启动级加载到所述多处理器SOC的至少一个其它处理器上,并使得数据能够在所述初始启动级与所述第二启动级之间流动。
在至少一个实例中,一种用于启动嵌入式多处理器系统的方法包含:启动将所述嵌入式多处理器系统的应用程序软件的初始启动级加载到所述嵌入式多处理器系统中的多处理器芯片上系统(SOC)的至少一个处理器上,其中开始执行所述初始启动级,且禁止数据从所述初始启动级流动到所述应用程序软件的后续启动级;在所述应用程序软件的控制下,启动将所述应用程序软件的所述后续启动级加载到所述多处理器SOC的至少一个其它处理器上,并通过所述应用程序软件使得数据能够在所述早期启动级与所述后续启动级之间流动。
在至少一个实例中,一种汽车安全系统包含:多处理器芯片上系统(SOC);耦接到所述多处理器SOC的相机;耦接到所述多处理器SOC的存储器,所述存储器存储被分割成早期启动级和后期启动级的应用程序软件,其中所述早期启动级被配置成从所述相机俘获视频帧并将所述视频帧显示到显示装置上,且所述后期启动级被配置成检测所述视频帧中的对象;和二级启动加载程序,其被配置成启动将所述早期启动级加载到所述多处理器SOC的主控处理器上。开始执行所述早期启动级,且禁止数据从所述早期启动级流动到所述后期启动级。所述应用程序软件被配置成启动将所述后期启动级加载到所述多处理器SOC的至少一个其它处理器上,并使得数据能够在所述早期启动级与所述后期启动级之间流动。
附图说明
图1是实例后视相机系统(RVCS)的框图。
图2说明实例常规RVCS应用程序的简化数据流。
图3是在实例芯片上系统(SOC)上实施的视觉软件开发工具包(SDK)软件堆叠的实例。
图4说明图2的简化数据流被划分成早期启动级和后期启动级。
图5是说明图1的RVCS的启动过程优化的序列图。
图6是用于启动汽车安全系统的方法的流程图。
具体实施方式
出于一致性,在各个图中的类似元件由类似的参考标号表示。
本公开的实施例提供例如高级辅助驾驶系统(ADAS)的嵌入式多处理器系统的启动时间优化,所述系统使得能够快速地启动加载应用程序软件的高优先权部分并延迟对较低优先权部分的启动。举例来说,在后视相机系统(RVCS)中,可以优先启动显示后视图视频的第一帧,而向对RVCS应用程序的例如对象检测的其它部分的启动给予较低优先权。在一些实施例中,应用程序软件管理应用程序的较低优先权部分的启动次序和启动加载。
在本文中参考实例RVCS解释实施例。实例实施例对于汽车安全系统和其它嵌入式多处理器系统是可能的。一般来说,汽车RVCS是被实施为具有外部模拟和数字接口的硬件单元的嵌入式系统。图1是实例RVCS 100的框图。RVCS 100包含:多处理器芯片上系统(SOC)108;包含只读存储器112、快闪存储器114和随机存取存储器(RAM)116的存储器装置;微控制器(MCU)106以及电源管理集成电路(PMIC)110。RVCS耦接到相机传感器102,相机传感器102被配置成俘获车辆的后视场的视频序列。RVCS 100还耦接到显示器104,显示器104被配置成将视频序列以及可能由于处理视频序列而产生的任何叠对和警告显示到RVCS 100中。
可以使用ROM 112来存储上电复位(POR)启动代码。可以使用快闪存储器114来存储二级启动代码(即,作为二级启动加载程序)和应用程序代码。MCU 106充当SOC 108与车载网络之间的通信接口。因此,MCU 106代管网络协议堆叠,其通常是控制器局域网(CAN)堆叠。多处理器SOC 108代管RVCS应用程序。
按照惯例,如下启动图1的RVCS。在POR后,即刻通过存储在ROM 112中的代码来启动加载多处理器SOC 108的处理器中的一个。在执行初始内置自测试(BIST)之后,将控制传递给从快闪存储器114读取到RAM 116中的二级启动加载程序。二级启动加载程序使SOC108准备执行RVCS应用程序、执行例如初始化基本定相锁相环路和时脉的功能、使得外围装置能够将多处理器应用程序图像加载到RAM 116中,以及启动SOC108中的其它处理器。在启动其它处理器之后,二级启动加载程序将控制传递给执行RVCS应用程序的处理器。启动多处理器SOC 108的所有处理器,之后开始执行RVCS应用程序。因此,直到启动所有处理器后才可以开始显示来自相机传感器102的视频流。因此启动时间引发的显示延迟可使车辆的驾驶员恼火,且还可影响安全。
图2说明实例常规RVCS应用程序的简化数据流。在这个实例中,使用可购自德克萨斯仪器公司(Texas Instruments Incorporated,TI)的视觉软件开发工具包(SDK)来说明RVCS应用程序的简化数据流。本文中提供对视觉SDK的简要概述。可以在K.Chitnis等人的2014年4月的德克萨斯仪器的“TI Vision SDK,ADAS系统的优化视觉库(TI Vision SDK,Optimized Vision Libraries for ADAS Systems)”中找到额外信息,所述篇章以引用的方式并入本文中。
TI Vision SDK是ADAS SOC的TI系列的多处理器软件开发平台。软件框架允许用户创建不同的ADAS应用程序数据流,涉及视频俘获、视频预处理、视频分析算法和视频显示。Vision SDK是基于被称作“链路和链”框架的框架,且此框架的用户API被称为“链路API”。
一般来说,链路是实施视频处理数据流中的处理步骤的软件模块。每一链路作为单独的线程执行,且包含允许其它链路与所述链路通信的消息框。每一链路还实施允许其它链路与所述链路直接地交换视频帧和/或位流的接口。链路之间的交换单元是系统缓冲区。存在多种类型的系统缓冲区,例如视频帧、视频位流和元数据类型。系统缓冲区至少包含缓冲区类型字段、识别系统中的视频/处理信道的信道号、时间戳、序列号、有效负载大小以及有效负载指标。
链路API实现链路的创建、控制和连接。将控制代码编写到单一处理器上。链路API在内部使用处理器间通信(IPC)以控制不同处理器上的链路。每一链路具有指示哪一处理器执行链路的链路识别符。链路的连接被称作链。所述链表示应用程序的数据流。在起始链之后,视频帧“流动”穿过所述链而不需要用户应用程序进行干预。表1包含对Vision SDK提供的链路中的一些的简要描述。
表1
图3是在TDA3x SOC 300的配置上实施的Vision SDK软件堆叠的实例,ADAS SOC中的一个可购自德克萨斯仪器公司。本实例的SOC 300包含两个图像处理器单元(IPU)、来自可购自德克萨斯仪器公司的信号处理器的TMS320C66x系列的两个数字信号处理器(DSP),以及嵌入式视觉引擎(EVE),其还被称作视觉处理器或视觉硬件加速器。举例来说,关于TDA3x SOC的架构的额外信息位于2014年10月德克萨斯仪器公司的“高级辅助驾驶系统(ADAS)技术高级技术简介的TDA3x SOC处理器(TDA3x SoC Processors for AdvancedDriver Assist Systems(ADAS)Technical Brief)”中,所述篇章以引用的方式并入本文中。软件堆叠302、304、306、308中的每一个说明在SOC 300的相应处理器上执行的软件。表2含有对软件层的简要描述。
表2
再次参看图2,所描绘的简化数据流假设图1的RVCS 100,其中SOC 100是图3的SOC300。在这个数据流中,俘获链路200、Dup链路202、IPC OUT链路204、IPC IN link 212、合并链路214、同步链路216、Alg链路218以及显示链路220在SOC 300的IPU1上执行。IPC IN链路206、Alg链路208以及IPC OUT链路210可以在SOC 300的C66x或EVE上执行。俘获链路200从相机传感器102俘获帧。Dup链路202向合并链路214和IPC OUT链路204提供复制帧信息。IPCOUT链路204与IPC IN链路206结合将帧信息从IPU1传达到在其它处理器上执行的Alg链路208。在这个实例中,Alg链路208实施用于对象检测的算法插件。举例来说,对象检测可以包含交通标志辨识、车道检测和/或行人检测。
IPC OUT链路210与IPC IN链路212结合将Alg链路208的输出传达到IPU1上的合并链路214。举例来说,Alg链路208的输出可以是检测到的对象的列表,包含每一对象的坐标和每一对象的类型。合并链路214合并Dup链路202的输出和Alg链路208的输出以供Alg链路218消耗。在此情况下,Alg链路218消耗来自Dup链路202的视频帧和来自Alg链路208的算法输出。
同步链路216时间使不同信道的缓冲区同步。在此情况下,同步链路216将视频帧的源时间戳匹配到通过Alg链路208输出的元数据,并将复合帧转发到Alg链路218。复合帧包含视频帧和单一缓冲区中用于所述帧的Alg链路208输出。在这个实例中,Alg链路218实施绘制算法。更具体地说,Alg链路218接收复合帧并围绕在视频帧中检测到的对象绘制界限,从而直观地指示检测到的对象。显示链路220将Alg链路218的输出显示到显示器104上。
如上文所提及,按照惯例,启动RVCS 100的所有处理器,之后可开始显示视频流。此外,如图2的简化数据流中所展示,针对数据流的所有链路处理初始帧,之后将任何内容均展示到显示器上。在一些实施例中,将RVCS应用程序的数据流划分成两个启动级,在本文中被称作早期启动级和后期启动级。早期启动级包含从相机传感器102俘获视频流并显示来自相机传感器102的视频流所需的应用程序数据流,而后期启动级包含RVCS应用程序的剩余数据流。可以启动早期启动级并开始执行,之后起始后期启动级。
图4说明图2的被划分成早期启动级400和后期启动级402的简化数据流。早期启动级400包含俘获链路200、Dup链路202以及显示链路220。将链路的剩余部分指派给后期启动级402。为了促进将数据流划分成启动级,将门链路406、408、410添加到早期启动级400以控制数据在早期启动级400中的链路与后期启动级402中的链路之间的流动。门链路充当用以控制数据从前一个链路流动到下一个链路的“门”。举例来说,门链路406控制数据从Dup链路202流动到IPC OUT链路204。门链路具有两种状态:允许数据流动穿过链路的开启状态;和不允许数据流动穿过链路的关闭状态。此外,当实例化门链路时,链路默认处于关闭状态。RVCS应用程序可以发布将门链路的状态改变成开启状态的命令。
而且,将合并链路404添加到早期启动级400以在门链路410处于开启状态时,合并Alg链路218和Dup链路202的输出。当门链路410处于关闭状态时,链路410将从Dup链路202接收到的信道转发到显示链路220。当在早期启动级400中实例化门链路410时,应用程序提供关于任何输入链路的信息,包含直到应用程序启动将后期启动级402加载到门链路410后才被实例化的任何链路。在对早期启动级400的启动加载期间,合并链路404在通过应用程序将门链路410改变成开启状态的任何时间,从门链路410接收开始接收数据所需的所有信息。
除了将RVCS应用程序的数据流分裂成早期启动级和后期启动级以外,RVCS应用程序还包含启动加载后期启动级的功能性。因此,在应用程序的早期启动级执行之后,应用程序起始对后期启动级的启动加载。在一些实施例中,修改二级启动加载程序(SBL)以仅启动应用程序的早期启动级所需的所述处理器并包含接口,即,应用程序接口(API),从而允许应用程序启用其它处理器并视需要针对后期启动级启动外围装置。更具体地说,可以将SBL分裂成三层:SBL库层、SBL效用层以及SBL应用程序。
SBL库层含有可供应用程序使用以启动处理器以及剖析并加载图像的API。这个库层可供应用程序和启动加载程序应用使用。举例来说,SBL效用层含有用于在启动媒体与主控处理器之间进行通信的API(即,执行应用程序的处理器、用于数据传递的API以及用于与各种外围装置交互的API)。这个层仅由启动加载程序应用使用。SBL应用程序含有加载并启动应用程序图像的二级启动加载程序应用,例如,应用程序的早期启动级。此SBL的实例在R.Garg和S.R.的2016年1月的德克萨斯仪器的“TDA3xx二级启动加载程序(SBL)(TDA3xxSecondary Bootloader(SBL))”第1到30页中进行了描述,所述篇章以引用的方式并入本文中。
图5是说明使用经修改SBL进行RVCS 100的启动过程的序列图。在POR后,即刻通过ROM启动加载程序来启动加载将执行RVCS应用程序的处理器。在执行初始内置自测试(BIST)之后,将控制传递给从快闪存储器114读取到RAM 116中的SBL应用程序。SBL应用程序启动RVCS应用程序的初始启动级所需的处理器,例如,SOC 300的IPU1(主控处理器)和代管CAN堆叠的处理器。SBL应用程序还启用初始启动级所需的任何外围装置、将用于RVCS应用程序的早期启动级的图像加载到RAM 116中,并起始执行早期启动级代码。在执行早期启动级代码后,即刻开始显示视频帧。此时,所有门链路(图4)都处于关闭状态。
RVCS应用程序接着使用SBL库的API来启动加载后期启动级所需的其它处理器并使所述处理器同步。最后,RVCS应用程序开始执行后期启动级。作为开始后期启动级的部分,RVCS应用程序向门链路(图4)中的每一个发送将改变这些链路的状态的命令,从而允许数据在早期启动级链路与后期启动级链路之间流动。
上述RVCS实例说明将汽车安全应用程序划分成两个启动级的优化启动。在一些实施例中,将汽车安全应用程序的数据流划分成多于两个启动级,使得初始启动级具有最高启动优先权,即,将首先被启动加载,且剩余的启动级具有较低启动优先权。对于每一启动级,在早先启动级期间尚未启动的情况下,启动执行被指派给启动级的应用程序的功能性所需的处理器。而且,剩余级的启动受安全应用程序管理。
图6是用于启动汽车安全系统的方法的流程图,其中应用程序软件被分割成多个启动级。将应用程序软件分割成使得将首先被启动加载的启动级中包含需要尽可能快地上线的应用程序的功能性,例如,俘获和显示视频帧。将应用程序软件的剩余功能性分割成在应用程序软件的控制下进行启动加载的启动级。
数据在启动级之间的流动受例如上述门链路的软件门模块控制,所述模块根据来自应用程序软件的命令使得数据能够流动穿过模块以及禁止数据流动穿过模块。当对启动级启动加载时,可以默认禁止启动级中的任何门模块。应用程序接着可以视需要使得门模块能够允许数据在启动级之间流动。
如图6中所展示,首先将安全系统应用程序的初始启动级启动加载600到多处理器SOC的一或多个处理器上。还启用执行初始启动级所需的任何外围装置。开始执行初始启动级。此时,禁止数据在初始启动级与任何后续启动级之间流动。因此,初始启动级中的任何门模块被配置成不允许数据流动穿过模块。
安全系统应用程序接着将应用程序的另一启动级启动加载602到多处理器SOC的一或多个其它处理器上。还启用尚未启用的执行初始启动级所需的任何外围装置。因此,对下一个启动级的启动加载受安全系统应用程序控制。安全系统应用程序可以使用二级启动加载程序(例如上文所描述的二级启动加载程序)的API来管理对下一个启动级的启动加载。开始执行下一个启动级。此时,禁止数据在最新启动的启动级与初始启动级之间且在最新启动的启动级与尚待启动加载的任何启动级之间流动。因此,最新启动的启动级中的任何门模块被配置成不允许数据流动穿过模块。
安全系统应用程序接着使得604数据能够在初始启动级与最新启动的启动级之间流动。因此,安全系统应用程序向任何门模块发送控制数据在两个启动级之间流动的命令,其使得数据能够流动穿过那些模块。不启用控制数据流动到尚未启动加载的启动级的两个启动级中的任何门模块。安全系统应用程序604接着重复启动加载另一启动级并使得数据能够流动以用于剩余启动级606。对于在第二启动级之后进行启动加载的任何启动级,视需要使得数据能够在所述启动级与先前启动加载的启动级中的任一个之间流动。
其它实施例
举例来说,本文中已描述了汽车安全系统是RVCS的实施例。实例实施例对于其它汽车安全系统是可能的,例如倒车预防、停车辅助、前方碰撞警告以及自动刹车。举例来说,对于其它基于相机的安全系统,早期启动级可以与RVCS实例的起动级相似,以便开始快速地显示视频流,且后期启动级可以包含安全系统应用程序软件的剩余部分。
在另一实例中,本文中已关于用于汽车安全的嵌入式多处理器系统进行了描述。实例实施例对于其它嵌入式多处理器系统是可能的,例如汽车信息娱乐、平视显示器以及消费型电子装置(例如,可佩戴式运动相机)。
在另一实例中,本文中已关于TDA3x多处理器SOC和Vision SDK描述了实施例。实例实施例对于其它多处理器SOC和/或用于多处理器软件开发的其它软件开发框架是可能的。
尽管可在本文中以依序方式呈现及描述方法步骤,但是在图中所展示及在本文中所描述的步骤中的一或多个可并行地执行、可组合、和/或可按与在图中所展示及/或在本文中所描述的次序不同的次序执行。
多处理器系统中的组件可以用不同名称指代,和/或可以按本文中未展示的方式进行组合。而且,术语“耦接”和其派生词打算意味着间接、直接、光学和/或无线电连接。举例来说,如果第一个装置耦合到第二个装置,那么所述连接可以通过直接电连接、通过经由其它装置和连接件的间接电连接、通过光学电连接和/或通过无线电连接。
在所描述的实施例中可能进行修改,且其它实施例在权利要求的范围内是可能的。

Claims (20)

1.一种嵌入式多处理器系统,其包括:
多处理器芯片上系统SOC;
耦接到所述多处理器SOC的存储器,所述存储器存储被分割成初始启动级和至少一个额外启动级的应用程序软件;和
二级启动加载程序,其被配置成启动将所述初始启动级加载到所述多处理器SOC的至少一个处理器上,其中开始执行所述初始启动级,且禁止数据从所述初始启动级流动到所述至少一个额外启动级;
其中所述应用程序软件被配置成启动将所述至少一个额外启动级的第二启动级加载到所述多处理器SOC的至少一个其它处理器上,并使得数据能够在所述初始启动级与所述第二启动级之间流动。
2.根据权利要求1所述的嵌入式多处理器系统,其中数据在所述应用程序软件的启动级之间流动受一或多个门模块控制,每一门模块被配置成在所述应用程序软件的命令下使得数据能够流动穿过所述模块或禁止数据流动穿过所述模块。
3.根据权利要求1所述的嵌入式多处理器系统,其中所述应用程序软件被配置成使用到所述二级启动加载程序的程序接口以启动加载所述第二启动级。
4.根据权利要求1所述的嵌入式多处理器系统,其中所述嵌入式多处理器系统耦接到相机以接收视频帧,且所述初始启动级被配置成从所述相机俘获视频帧并将所述视频帧显示到显示装置上。
5.根据权利要求4所述的嵌入式多处理器系统,其中所述嵌入式多处理器系统是后视相机系统。
6.根据权利要求5所述的嵌入式多处理器系统,其中所述二级启动加载程序还被配置成启动加载处理器代管控制器局域网CAN堆叠。
7.根据权利要求1所述的嵌入式多处理器系统,其中所述至少一个处理器包括图像处理器,且所述至少一个其它处理器包括数字信号处理器和视觉处理器中的至少一个。
8.根据权利要求1所述的嵌入式多处理器系统,其中所述嵌入式多处理器系统是汽车安全系统。
9.一种用于启动嵌入式多处理器系统的方法,所述方法包括:
启动将所述嵌入式多处理器系统的应用程序软件的初始启动级加载到所述嵌入式多处理器系统中的多处理器芯片上系统SOC的至少一个处理器上,其中开始执行所述初始启动级,且禁止数据从所述初始启动级流动到所述应用程序软件的后续启动级;
在所述应用程序软件的控制下,启动将所述应用程序软件的所述后续启动级加载到所述多处理器SOC的至少一个其它处理器上;和
通过所述应用程序软件使得数据能够在所述早期启动级与所述后续启动级之间流动。
10.根据权利要求9所述的方法,其中数据在所述应用程序软件的启动级之间流动受一或多个门模块控制,每一门模块被配置成在所述应用程序软件的命令下使得数据能够流动穿过所述模块或禁止数据流动穿过所述模块。
11.根据权利要求9所述的方法,其中通过二级启动加载程序来执行加载初始级的所述启动,且所述应用程序软件使用到所述二级启动加载程序的程序接口以启动加载所述后续启动级。
12.根据权利要求9所述的方法,其中所述初始启动级包含俘获视频帧并将视频帧显示到显示装置上的功能性。
13.根据权利要求9所述的方法,其中所述至少一个处理器包括图像处理器,且所述至少一个其它处理器包括数字信号处理器和视觉处理器中的至少一个。
14.根据权利要求9所述的方法,其中所述嵌入式多处理器系统是后视相机系统。
15.根据权利要求14所述的方法,其其进一步包括启动加载处理器代管控制器局域网CAN堆叠。
16.一种汽车安全系统,其包括:
多处理器芯片上系统SOC;
耦接到所述多处理器SOC的相机;
耦接到所述多处理器SOC的存储器,所述存储器存储被分割成早期启动级和后期启动级的应用程序软件,其中所述早期启动级被配置成从所述相机俘获视频帧并将所述视频帧显示到显示装置上,且所述后期启动级被配置成检测所述视频帧中的对象;和
二级启动加载程序,其被配置成启动将所述早期启动级加载到所述多处理器SOC的主控处理器上,其中开始执行所述早期启动级,且禁止数据从所述早期启动级流动到所述后期启动级;
其中所述应用程序软件被配置成启动将所述后期启动级加载到所述多处理器SOC的至少一个其它处理器上,并使得数据能够在所述早期启动级与所述后期启动级之间流动。
17.根据权利要求16所述的汽车安全系统,其中数据在所述早期启动级与所述后期启动级之间流动受一或多个门模块控制,每一门模块被配置成在所述应用程序软件的命令下使得数据能够流动穿过所述模块或禁止数据流动穿过所述模块。
18.根据权利要求16所述的汽车安全系统,其中所述应用程序软件被配置成使用到所述二级启动加载程序的程序接口以启动加载所述后期启动级。
19.根据权利要求16所述的汽车安全系统,其中所述主控处理器是图像处理器,且所述至少一个其它处理器包括数字信号处理器和视觉处理器中的至少一个。
20.根据权利要求16所述的汽车安全系统,其中所述汽车安全系统是后视相机系统。
CN201680063080.2A 2015-10-30 2016-10-31 嵌入式多处理器系统的启动时间优化的方法和系统 Active CN108351775B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
IN5868/CHE/2015 2015-10-30
IN5868CH2015 2015-10-30
US15/087,856 US10956169B2 (en) 2015-10-30 2016-03-31 Method and system for boot time optimization of embedded multiprocessor systems
US15/087,856 2016-03-31
PCT/US2016/059797 WO2017075623A1 (en) 2015-10-30 2016-10-31 Method and system for boot time optimization of embedded multiprocessor systems

Publications (2)

Publication Number Publication Date
CN108351775A true CN108351775A (zh) 2018-07-31
CN108351775B CN108351775B (zh) 2022-12-23

Family

ID=58637605

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680063080.2A Active CN108351775B (zh) 2015-10-30 2016-10-31 嵌入式多处理器系统的启动时间优化的方法和系统

Country Status (2)

Country Link
US (2) US10956169B2 (zh)
CN (1) CN108351775B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10733478B2 (en) * 2016-08-31 2020-08-04 Facebook, Inc. Systems and methods for processing media content that depict objects
US11354165B1 (en) * 2017-07-13 2022-06-07 Workday, Inc. Automated cluster execution support for diverse code sources
CN109445846A (zh) * 2018-10-30 2019-03-08 中国船舶重工集团公司第七0七研究所 一种ndk适配层移植方法
CN113064668B (zh) * 2021-03-26 2024-03-15 中国航空无线电电子研究所 嵌入式平台可执行文件数据在线加载控制系统
TWI803925B (zh) * 2021-08-03 2023-06-01 明基電通股份有限公司 低待機耗電量的會議系統

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1740941A (zh) * 2004-08-25 2006-03-01 微软公司 用于程序代码安全执行的系统和方法
US20060080522A1 (en) * 2004-10-13 2006-04-13 Button Russell E Method, apparatus, and system for facilitating secure computing
CN101067790A (zh) * 2006-05-04 2007-11-07 Qnx软件操作系统德国有限公司 执行快速启动唤醒的系统
CN101441607A (zh) * 2007-04-10 2009-05-27 标准微系统公司 在计算机系统中嵌入式控制器和处理器之间共享非共享的设备
CN101930373A (zh) * 2009-06-19 2010-12-29 中兴通讯股份有限公司 一种片上系统启动的方法和装置
CN101976198A (zh) * 2010-10-27 2011-02-16 中兴通讯股份有限公司 一种嵌入式系统中控制应用程序启动的方法和装置
US20110271086A1 (en) * 2010-04-28 2011-11-03 Gm Global Technology Operations, Inc. Systems and methods to control multiple peripherals with a single-peripheral application code
US20130151829A1 (en) * 2011-12-08 2013-06-13 International Business Machines Corporation Multi-Chip Initialization Using a Parallel Firmware Boot Process
US20130173898A1 (en) * 2011-12-31 2013-07-04 International Business Machines Corporation Secure boot of a data breakout appliance with multiple subsystems at the edge of a mobile data network
KR20130095142A (ko) * 2012-02-17 2013-08-27 인포뱅크 주식회사 프로그램 실행 방법 및 장치와 이를 위한 기록매체
US20140160291A1 (en) * 2012-12-05 2014-06-12 Magna Electronics Inc. Vehicle vision system utilizing camera synchronization
US20140281092A1 (en) * 2013-03-13 2014-09-18 Sarathy Jayakumar System management interrupt handling for multi-core processors
US20150170435A1 (en) * 2013-12-13 2015-06-18 Power International Chemical & Oil Corporation Intelligent, Cloud-Based, and Real-Time Vehicle Care System

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7426437B2 (en) 1997-10-22 2008-09-16 Intelligent Technologies International, Inc. Accident avoidance systems and methods
US6179489B1 (en) 1997-04-04 2001-01-30 Texas Instruments Incorporated Devices, methods, systems and software products for coordination of computer main microprocessor and second microprocessor coupled thereto
RU2268829C2 (ru) 2004-03-12 2006-01-27 Михаил Викторович Ерещенко Автомобильная бортовая информационная система
US8903798B2 (en) 2010-05-28 2014-12-02 Microsoft Corporation Real-time annotation and enrichment of captured video
KR20120017116A (ko) * 2010-08-18 2012-02-28 엠텍비젼 주식회사 차량용 정보 표시 장치 및 방법
WO2015087365A1 (ja) * 2013-12-09 2015-06-18 三菱電機株式会社 情報機器
EP3126990A4 (en) * 2014-04-02 2017-11-29 Continental Automotive GmbH Early rear view camera video display in a multiprocessor architecture

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1740941A (zh) * 2004-08-25 2006-03-01 微软公司 用于程序代码安全执行的系统和方法
US20060080522A1 (en) * 2004-10-13 2006-04-13 Button Russell E Method, apparatus, and system for facilitating secure computing
CN101067790A (zh) * 2006-05-04 2007-11-07 Qnx软件操作系统德国有限公司 执行快速启动唤醒的系统
CN101441607A (zh) * 2007-04-10 2009-05-27 标准微系统公司 在计算机系统中嵌入式控制器和处理器之间共享非共享的设备
CN101930373A (zh) * 2009-06-19 2010-12-29 中兴通讯股份有限公司 一种片上系统启动的方法和装置
US20110271086A1 (en) * 2010-04-28 2011-11-03 Gm Global Technology Operations, Inc. Systems and methods to control multiple peripherals with a single-peripheral application code
CN101976198A (zh) * 2010-10-27 2011-02-16 中兴通讯股份有限公司 一种嵌入式系统中控制应用程序启动的方法和装置
US20130151829A1 (en) * 2011-12-08 2013-06-13 International Business Machines Corporation Multi-Chip Initialization Using a Parallel Firmware Boot Process
US20130173898A1 (en) * 2011-12-31 2013-07-04 International Business Machines Corporation Secure boot of a data breakout appliance with multiple subsystems at the edge of a mobile data network
KR20130095142A (ko) * 2012-02-17 2013-08-27 인포뱅크 주식회사 프로그램 실행 방법 및 장치와 이를 위한 기록매체
US20140160291A1 (en) * 2012-12-05 2014-06-12 Magna Electronics Inc. Vehicle vision system utilizing camera synchronization
US20140281092A1 (en) * 2013-03-13 2014-09-18 Sarathy Jayakumar System management interrupt handling for multi-core processors
US20150170435A1 (en) * 2013-12-13 2015-06-18 Power International Chemical & Oil Corporation Intelligent, Cloud-Based, and Real-Time Vehicle Care System

Also Published As

Publication number Publication date
US20170123810A1 (en) 2017-05-04
US10956169B2 (en) 2021-03-23
US20210232406A1 (en) 2021-07-29
CN108351775B (zh) 2022-12-23
US11681534B2 (en) 2023-06-20

Similar Documents

Publication Publication Date Title
CN108351775A (zh) 嵌入式多处理器系统的启动时间优化的方法和系统
US10169066B2 (en) System and method for enhancing advanced driver assistance system (ADAS) as a system on a chip (SOC)
DE102021118885B4 (de) Maschinelles lernen zur steuerung von objektübergaben
DE112020005156T5 (de) Verstärkendes Lernen von taktilen Greifstrategien
US11148675B2 (en) Apparatus and method of sharing a sensor in a multiple system on chip environment
DE102021121560A1 (de) Objektbild vervollständigung
DE112020005206T5 (de) Bestimmen der Objektorientierung aus einem Bild mit Maschinenlernen
DE112021005717T5 (de) Modell zum maschinellen Lernen für die Aufgaben- und Bewegungsplanung
DE102020127508B4 (de) Posenverfolgung von Objekten in der Hand
CN106462517B (zh) 在多处理器架构中的早期标识显示
DE112020005476T5 (de) Neuronales netz zur bildausrichtung
DE102021132069A1 (de) Grafikverarbeitungseinheiten zur erkennung von betrug mittels neuronaler netze
DE102022103881A1 (de) Generieren von frames für die neuronale simulation mit einem oder mehreren neuronalen netzen
DE102022124368A1 (de) Sichere ausführung für mehrprozessoreinrichtungen mittels vertrauenswürdiger ausführungsumgebungen
DE102022109521A1 (de) Techniken zur Parallelausführung
DE102022108420A1 (de) Kernelerzeugung für neuronale netzwerke
DE112021001961T5 (de) Verfahren für Training und Inferenz unter Verwendung mehrerer Prozessorressourcen
DE102022108019A1 (de) Erzeugung und verwendung von superpixeln
DE102022108711A1 (de) Techniken zur kombination von operationen
DE102022105842A1 (de) Pruning neuronaler netze
US12067388B2 (en) Updating software elements with different trust levels
DE102022123786A1 (de) Implementierung vertrauenswürdiger ausführungsumgebungen über mehrere prozessoreinrichtungen hinweg
CN108986253A (zh) 用于存储数据的方法、装置、设备和计算机可读存储介质
CN117474066A (zh) 使用一个或更多个神经网络分析反馈
WO2017075623A1 (en) Method and system for boot time optimization of embedded multiprocessor systems

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant