在多处理器系统中将可执行软件图像从主要处理器直接分散加载到一个或一个以上次要...的制作方法

文档序号:6359922阅读:196来源:国知局
专利名称:在多处理器系统中将可执行软件图像从主要处理器直接分散加载到一个或一个以上次要 ...的制作方法
技术领域
以下描述大体上涉及多处理器系统,且更具体地说,涉及多处理器系统,其中主要处理器耦合到存储所述系统中的一个或一个以上其它处理器(本文中称为“次要”处理器)的可执行软件图像的非易失性存储器,所述一个或一个以上其它处理器各自耦合到专用易失性存储器,其中以经分段格式(例如,使用直接分散加载过程)将所述可执行软件图像高效地从主要处理器传送到次要处理器。
背景技术
处理器执行软件代码以执行操作。处理器可需要待执行以用于引导的某一软件代码,通常称为引导代码。在多处理器系统中,每一处理器可需要相应的引导代码来用于引导。作为一实例,在包含应用处理器和调制解调器处理器的智能电话装置中,处理器中的每一者可具有相应的弓I导代码来用于引导。大量的并入有多个处理器(例如与单独的调制解调器处理器芯片集成的独立应用处理器芯片)的装置(例如智能电话)上存在一个问题。快闪/非易失性存储器组件可用于处理器中的每一者,因为每一处理器具有可执行图像和文件系统的非易失性存储器(例如,持久存储装置)。举例来说,可将处理器的引导代码存储到处理器的相应非易失性存储器(例如,快闪存储器、只读存储器(ROM)等),且在加电后,处理器即刻从其相应的非易失性存储器加载引导代码软件以供执行。因此,在这种类型的架构中,不要求将可执行软件(例如处理器的引导代码)从系统中的另一处理器加载到所述处理器。然而,将专用非易失性存储器添加到每一处理器会占用较多电路板空间,从而增加电路板大小。一些设计可使用随机存取存储器(RAM)与快闪存储器的组合式芯片(其中RAM和快闪装置堆叠为一个封装以减小大小)以减小板大小。虽然多芯片封装解决方案确实在某种程度上减小了所需的电路板占用面积,但所述方案可增加成本。在一些多处理器系统中,可能要求将软件从一个处理器加载到另一处理器。举例来说,假设多处理器系统中的第一处理器负责将用于所述系统中的一个或一个以上其它处理器的引导代码存储到其非易失性存储器;其中在加电后,第一处理器的任务是将相应的引导代码加载到其它处理器,这与此引导代码驻存在其它处理器的非易失性存储器中形成对比。在这种类型的系统中,将软件(例如,引导图像)从第一处理器下载到其它处理器(例如,下载到其它处理器的易失性存储器),且其后接收处理器用所下载的图像来引导。通常,待加载的软件图像为二进制多片段式图像。举例来说,软件图像可包含标头,接着是代码的多个片段。当将软件图像从外部装置(例如,从另一处理器)加载到目标装置(例如,目标处理器)时,可存在中间步骤,其中将二进制多片段式图像传送到系统存储器中,且接着稍后由弓I导加载程序传送到目标位置中。在其中将软件图像从第一“主要”处理器加载到目标“次要”处理器上的系统中,执行此加载的一种方式是分配每一包被接收到其中的临时缓冲器,且每一包将具有相关联的包标头信息以及有效负载。在此情况下,有效负载将为实际图像数据。从临时缓冲器,可在有效负载上进行一些处理,且接着有效负载将被拷贝到最终目的地。临时缓冲器将为系统存储器中的某一地方,例如内部随机存取存储器(RAM)或双数据速率(DDR)存储器中。
因此,在使用中间缓冲器的情况下,将正从主要处理器下载到次要处理器的数据拷贝到中间缓冲器中。以此方式,缓冲器用于从主要处理器接收图像数据的部分,且图像数据可从缓冲器扩散到次要处理器的存储器(例如,易失性存储器)中。主要处理器及其存储用于次要处理器的引导图像的非易失性存储器可实施于与上面实施次要处理器的芯片不同的芯片上。因此,为了将数据从主要处理器的非易失性存储器传送到次要处理器(例如,传送到次要处理器的易失性存储器),可使用基于包的通信,其中包标头包含于传送到次要处理器的每一包中。所述包存储在中间缓冲器中,且接着需要将对所接收包的一些处理用于待存储在需要去往的地方(例如,次要处理器的易失性存储器内)的所述数据。

发明内容
本发明提供一种多处理器系统。所述系统包含次要处理器,所述次要处理器具有系统存储器和用于接收可执行软件图像的至少一部分的硬件缓冲器。所述次要处理器包括用于将所述可执行软件图像从所述硬件缓冲器直接加载到所述系统存储器的分散加载程序控制器。所述系统还包含主要处理器,其与存储器耦合。所述存储器存储用于所述次要处理器的所述可执行软件图像。所述系统进一步包含接口,所述接口以通信方式耦合所述主要处理器和所述次要处理器,所述可执行软件图像由所述次要处理器经由所述接口接收。本发明还提供一种方法。所述方法包含在次要处理器处经由芯片间通信总线从主要处理器接收用于所述次要处理器的可执行软件图像的图像标头,所述可执行软件图像存储在耦合到所述主要处理器的存储器中。所述可执行软件图像包括所述图像标头和至少一个数据片段。所述方法还包含通过所述次要处理器处理所述图像标头,以确定所述次要处理器耦合到的系统存储器内的至少一个位置以存储所述至少一个数据片段。所述方法还包含在所述次要处理器处经由所述芯片间通信总线从所述主要处理器接收所述至少一个数据片段。更进一步,所述方法包含通过所述次要处理器将所述至少一个数据片段直接加载到所述系统存储器内的所述所确定的至少一个位置。本发明提供一种设备。所述设备包含用于在次要处理器处经由芯片间通信总线从主要处理器接收用于所述次要处理器的可执行软件图像的图像标头的装置,所述可执行软件图像存储在耦合到所述主要处理器的存储器中。所述可执行软件图像包括所述图像标头和至少一个数据片段。所述设备还包含用于通过所述次要处理器处理所述图像标头以确定所述次要处理器耦合到的系统存储器内的至少一个位置以存储所述至少一个数据片段的装置。所述设备进一步包含用于在所述次要处理器处经由所述芯片间通信总线从所述主要处理器接收所述至少一个数据片段的装置。更进一步,所述设备包含用于通过所述次要处理器将所述至少一个数据片段直接加载到所述系统存储器内的所述所确定的至少一个位置的装置。本发明提供一种多处理器系统。所述系统包含主要处理器,所述主要处理器与第一非易失性存储器耦合。所述第一非易失性存储器专门耦合到所述主要处理器,且存储用于所述主要处理器的文件系统以及用于所述主要处理器和次要处理器的可执行图像。所述系统还包含次要处理器,所述次要处理器与第二非易失性存储器耦合。所述第二非易失性存储器专门耦合到所述次要处理器,且存储用于所述次要处理器的配置参数和文件系统。所述系统进一步包含接口,所述接口以通信方式耦合所述主要处理器和所述次要处理器,可执行软件图像由所述次要处理器经由所述接口接收。本发明提供一种多处理器系统。所述系统包含主要处理器,所述主要处理器与第 一非易失性存储器耦合。所述第一非易失性存储器专门耦合到所述主要处理器,且存储用于所述主要和次要处理器的可执行图像和文件系统。所述系统还包含次要处理器。所述系统进一步包含接口,所述接口以通信方式耦合所述主要处理器和所述次要处理器,可执行软件图像由所述次要处理器经由所述接口接收。本发明提供一种方法,所述方法包含从耦合到所述主要处理器的存储器发送用于所述次要处理器的可执行软件图像,经由以通信方式耦合主要处理器与次要处理器的接口来发送所述可执行软件图像。所述方法还包含在所述次要处理器处接收所述可执行软件图像。所述方法进一步包含在所述次要处理器处执行所述可执行软件图像。


为了更完整地理解本发明的教示,现在参考结合附图进行的以下描述。图I是其内可实施本发明的各方面的示范性装置的说明。图2是其内可实施本发明的各方面的示范性装置的说明。图3是根据本发明一个方面的用于将可执行图像从主要处理器加载到次要处理器的示范性加载过程的操作流的说明。图4是说明根据本发明一个方面的分散加载方法的流程图。图5是展示其中可有利地使用本发明的实施例的示范性无线通信系统的框图。
具体实施例方式词语“示范性”在本文中意味着“充当实例、例子或说明”。不必将本文中描述为“示范性”的任何方面解释为比其它方面优选或有利。本文所揭示的某些方面涉及多处理器系统,其中一个主要处理器连接到存储系统中的一个或一个以上其它处理器(在本文中称为“次要”处理器)的可执行图像的非易失性存储器。在此多处理器系统中,次要处理器中的每一者可连接到用于存储可执行图像、运行时数据和(任选地)文件系统镜像的专用易失性存储器。
通常以分段式格式存储可执行图像,其中可将每一片段加载到不同的存储器区中。可执行片段的目标存储器位置可相对于彼此或可不相对于彼此是邻接的。多片段式图像格式的一个实例是可执行和链接格式(ELF),其允许将可执行图像分解为多个片段,且可将这些片段中的每一者加载到不同的系统存储器位置中。在一个示范性方面中,揭示一种用于将片段式图像从主要处理器的非易失性存储器加载到次要处理器的易失性存储器的直接分散加载技术。如下文进一步论述,直接分散加载技术避免使用临时缓冲器。举例来说,在一个方面中,不是使用其中经由各自包含相应标头的包来传送图像的基于包的通信,而是将原始图像数据从主要处理器加载到次要处理器。在另一方面中,使用包含用于确定数据的目标位置信息的信息的标头。具有集中的非易失性存储器的示范性多处理器架构——具有减少的用于文件系统的局部化非易失性存储器图I说明第一多处理器架构102的框图,其中主要处理器(应用处理器104)托管主要(大的)非易失性存储器106 (例如,NAND快闪存储器),而第二处理器(例如调制解 调器处理器110)具有次要(减小的或最小的)非易失性存储器114(例如,NOR快闪存储器)。在通信装置架构102中,应用处理器104耦合到主要非易失性存储器106和应用处理器易失性存储器108 (例如,随机存取存储器)。调制解调器处理器110耦合到次要非易失性存储器114和调制解调器处理器易失性存储器112。处理器间通信总线134允许应用处理器104与调制解调器处理器110之间的通信。用于调制解调器处理器110的调制解调器可执行图像120可与应用处理器(AP)可执行图像118和AP文件系统116 —起存储在AP非易失性存储器106中。应用处理器104可将其AP可执行图像118加载到应用处理器易失性存储器108中,且将其存储为AP可执行图像122。应用处理器易失性存储器108还可用以存储AP运行时数据124。调制解调器处理器110具有专用的次要(减小的或最小的)非易失性存储器114(例如,NOR快闪)以用于其文件系统128的存储。此次要(减小的或最小的)非易失性存储器114比能够存储运行时调制解调器可执行图像120和文件系统128的快闪装置小且成本低。在系统加电后,调制解调器处理器110即刻从硬件引导ROM 126 (较小的只读芯片上存储器)执行其主要引导加载程序(PBL)。调制解调器PBL可适于从应用处理器104下载调制解调器可执行物120。就是说,调制解调器处理器110向应用处理器104请求调制解调器可执行图像120 (最初存储在主要非易失性存储器106中)。应用处理器104检索调制解调器可执行图像120,并经由处理器间通信总线134(例如,芯片间通信总线)将其提供给调制解调器处理器110。调制解调器处理器110将调制解调器可执行图像132直接存储到调制解调器处理器RAM(随机存取存储器)112中到最终目的地,而不将数据拷贝到调制解调器处理器RAM 112中的临时缓冲器中。处理器间通信总线134可为(例如)HSIC总线(基于USB的高速芯片间)、HSI总线(MIPI高速同步接口 )、SDIO总线(安全数字I/O接口)、UART总线(通用异步接收器/发射器)、SPI总线(串行外围接口)、I2C总线(集成电路间),或适合于调制解调器处理器110和应用处理器104两者上可用的芯片间通信的任何其它硬件接口。
一旦将调制解调器可执行图像120下载到调制解调器处理器RAM 112中并进行验证,就将其维持为调制解调器可执行图像132。另外,调制解调器处理器易失性存储器112还可存储调制解调器运行时数据130。调制解调器引导ROM代码126可接着跳到所述调制解调器可执行图像132中,且开始从调制解调器处理器RAM 112执行主调制解调器程序。可使用附接到调制解调器处理器110的次要(减小的或最小的)非易失性存储器114将任何持久(非易失性)数据(例如射频(RF)校准和系统参数)存储在调制解调器文件系统128上。具有集中的非易失性存储器的示范性多处理器架构——不具有用于文件系统的本地非易失性存储器图2说明其中主要处理器(应用处理器204)托管主要(大的)非易失性存储器206 (例如,NAND快闪存储器)的第二多处理器架构202的框图。主要非易失性存储器206可存储用于次要处理器(调制解调器处理器210)的调制解调器可执行图像214和/或调制解调器文件系统220。次要处理器(调制解调器处理器210)可经配置以向主要处理器 204请求调制解调器可执行图像214和/或调制解调器文件系统220。主要处理器204接着从非易失性存储器206检索所请求的调制解调器可执行图像214和/或调制解调器文件系统220,并经由处理器间通信总线234将其提供给次要处理器210。在此架构202中,应用处理器204耦合到非易失性存储器206和应用处理器易失性存储器208 (例如,随机存取存储器)。调制解调器处理器210耦合到调制解调器处理器易失性存储器212,而不具有其自身的非易失性存储器。调制解调器处理器易失性存储器212存储文件系统镜像228、调制解调器可执行图像236以及调制解调器运行时数据230。处理器间通信总线234允许应用处理器204与调制解调器处理器210之间的通信。用于调制解调器处理器210的所有可执行图像214和文件系统220可与AP可执行图像218和AP文件系统216 —起存储在非易失性存储器206中。应用处理器204可将其AP可执行图像218加载到应用处理器易失性存储器208中,并将其存储为AP可执行图像222。应用处理器易失性存储器208还可用以存储AP运行时数据224。可用调制解调器处理器的私钥对调制解调器文件系统进行加密,以用于隐私保护并防止订户身份克隆。在系统加电后,调制解调器引导ROM代码226即刻将调制解调器可执行图像214和调制解调器文件系统220从应用处理器204下载到调制解调器处理器易失性存储器212中。在正常操作期间,可从调制解调器处理器易失性存储器212提供对调制解调器文件系统228的任何读取存取。还在调制解调器处理器易失性存储器212中执行任何写入存取。另外,可存在在调制解调器处理器210和应用处理器204上运行的后台进程,以使调制解调器处理器易失性存储器212中的文件系统228的内容与存储在非易失性存储器206上的调制解调器文件系统220同步。主要和次要处理器可周期性地使用于次要处理器的易失性存储器中的文件系统与主要非易失性存储器中的对应文件系统同步。对调制解调器文件系统228的初次写入可起动调制解调器处理器210中的定时器(例如,十分钟定时器)。在此定时器正在运行时,对文件系统228的所有写入聚结到调制解调器处理器易失性存储器212中。在定时器期满后,调制解调器处理器210即刻从易失性存储器212拷贝文件系统图像228、对其进行加密,并警告应用处理器204新数据可用。应用处理器204读取经加密的拷贝,并将其写入到非易失性存储器206进入调制解调器文件系统220中。应用处理器204接着用信号通知调制解调器处理器210写入操作完成。如果同步操作失败,那么可使用调制解调器文件系统的当前版本。同步可周期性地发生(例如,每九十秒)或在调制解调器对其文件系统的写入操作之后的某一时间之后发生。为了防止来自例如突发性电力移除等情形的崩溃,可存储调制解调器文件系统220的两个拷贝。调制解调器处理器210还可起始文件系统镜像228到应用处理器的非易失性存储器206的“冲洗”操作。这可出于多种原因而发生,包含电话断电,以及将确认消息发送给网络以指示传入的SMS消息的接受和存储。调制解调器处理器210上的文件系统读取操作是从调制解调器处理器易失性存储器212服务,其反映调制解调器文件系统的当前状态。因为读取操作比写入操作频繁,且写入操作趋向于以活动“突发”的形式发生,因此可降低整个系统的负载和电力消耗。应用处理器204、调制解调器处理器210和引导加载程序在原地具有特定措施以 确保无论什么时候在非易失性存储器206中总是存在可用的至少一个完整文件系统图像。这提供对失电和意外复位情景的免疫力。本文所揭示的概念的应用不限于上文所示的示范性系统,而是可同样与各种其它多处理器系统一起使用。零拷贝输送流本发明的各方面提供用于将可执行软件图像从主要处理器的非易失性存储器高效地加载到次要处理器的易失性存储器的技术。如上文所提到,传统的加载过程需要中间步骤,其中二进制多分段式图像经过缓冲(例如,将其传送到系统存储器中),且接着稍后将其分散到目标位置中(例如,通过引导加载程序)。本发明的各方面提供减轻传统的加载过程中所需的中间缓冲步骤的技术。因此,本发明的各方面避免了额外的存储器拷贝操作,从而改善了性能(例如,减少了引导多处理器系统中的次要处理器所需的时间)。如下文进一步论述,本发明的一个示范性方面使用用于将可执行软件图像从主要处理器的非易失性存储器加载到次要处理器的易失性存储器的直接分散加载技术。本发明的某些方面还实现具有后传送数据处理(例如验证)的同时图像传送,这可进一步改善效率,如下文进一步论述。在一个方面中,主机主要处理器并不处理任何信息或从实际图像数据提取任何信息,其仅将图像数据作为“原始”数据发送给目标,而无附接到包的任何包标头。因为目标次要处理器起始数据传送请求,因此其确切地知道要接收多少数据。这使得主机能够发送不具有包标头的数据,且使得目标能够直接接收和存储所述数据。在所述方面中,目标在需要时向主机请求数据。目标所请求的第一数据项目为用于给定图像传送的图像标头。一旦目标已处理图像标头,其就知道图像中的每一数据片段的位置和大小。图像标头还指定图像在目标存储器中的目的地地址。通过此信息,目标可向主机请求用于每一片段的数据,且将数据直接传送到目标存储器中的适当位置。用于应用处理器上的芯片间通信总线的硬件控制器可添加其自身的低级协议标头,所述低级协议标头将由调制解调器处理器处理并剥离。这些低级标头对于在两个处理器上运行的软件来说可为透明的。在本发明的一个方面中,将加载过程分为两个阶段,如图3中所示的示范性流程中所说明。图3展示主要处理器301 (其可为具有其非易失性存储器106或206的图I或2的应用处理器104或204)和次要处理器302 (其可为具有其易失性存储器112或212的图I或2的调制解调器处理器110或210)的框图。在图3中,将用于次要处理器302的示范性软件图像存储到主要处理器301的非易失性存储器。如此实例中所示,示范性软件图像303为包含图像标头部分和多个数据片段(在此实例中展示为数据片段I到5)的多片段图像。主要处理器301和次要处理器302可位于不同的物理硅芯片上(即,不同芯片封装上)或可位于同一封装上。在图3的示范性加载过程的第一阶段中,将图像标头信息传送到次要处理器302。主要处理器301从主要处理器306的非易失性存储器检索以图像标头开始的数据图像片段。主要处理器301解析图像标头以将个别图像片段从主要处理器306的非易失性存储器加载到主要处理器307的系统存储器。图像标头包含用以识别最终将调制解调器图像可执行数据放置到次要处理器305的系统存储器中何处的信息。当接收实际可执行数据时,次要处理器302使用标头信息来对分散加载程序/直接存储器存取控制器304的接收地址进行编程。接着将数据片段从系统存储器307发送到主要硬件输送机构308。接着经由芯片间通信总线310 (例如,HS-USB缆线)将片段从主要处理器301的硬件输送机构308发送 到次要处理器302的硬件输送机构309。所传送的第一片段可为图像标头,其含有由次要处理器用来将数据片段定位到次要处理器305的系统存储器中的目标位置中的信息。图像标头可包含用以确定数据的目标位置信息的信息。在一个方面中,目标位置不是预定的,而是作为分散加载过程的一部分由在次要处理器中执行的软件确定。来自图像标头的信息可用以确定目标位置。在此方面中,次要处理器的引导加载程序首先向主要处理器请求图像标头(主要处理器CPU完全不处理图像标头)。次要处理器通过查看图像标头而知道数据片段在非易失性存储器中如何分布(除RAM地址/大小之外,标头还包含在非易失性存储器中相对于每一片段的图像文件的开始的相对位置)。对数据片段的后续请求由次要处理器驱动。在另一方面中,主要处理器可通过解析图像标头且接着对次要处理器的控制器进行编程以将随后的数据片段放置在图像标头中所指定的指定地址中,来将片段放入次要处理器的易失性存储器中。这可涉及用以允许对次要处理器的控制器的此外部控制的额外硬件。图像标头通常包含片段开始地址和大小的列表,所述片段开始地址和大小界定所述片段中的每一者应被加载在次要处理器的系统存储器305中的何处。次要处理器302包含硬件输送机构309 (例如,USB控制器),硬件输送机构309包含分散加载程序控制器304。在加载过程的第二阶段中,引导加载程序对芯片间连接控制器的引擎进行编程,以接收传入的数据并根据在第一阶段中接收到的标头信息将其分散加载到次要处理器的对应目标存储器区305中。在USB或HSIC总线的情况下,可将图像的每一片段作为单个USB传送在芯片间通信总线310上传送。知道片段的大小和目的地地址允许软件对次要处理器302的分散加载程序控制器304进行编程,以用于在次要处理器302进行的最少软件干预的情况下,将整个片段直接传送到目标存储器位置中(系统存储器305内)。这可在片段相当大(例如,超过I兆字节(MB))时产生USB/HSIC总线上的增加的性能。如图3中所示,不一定将图像片段放置到次要处理器的系统存储器305内的连续位置中。而是片段可散布在存储器的不同位置中。图3的示范性加载过程使次要处理器的软件(即,图像303)的拷贝能够从主要处理器301直接发送到次要处理器的系统存储器305上的最终片段目的地。将图像标头从主要处理器301加载到次要处理器302的分散加载程序控制器304。所述图像标头提供关于数据片段将位于系统存储器305中的何处的信息。分散加载程序控制器304因此将图像片段直接传送到其在次要处理器的系统存储器305中的相应目标位置中。也就是说,一旦次要处理器的CPU处理其存储器305中的图像标头并对分散加载程序控制器304进行编程,分散加载程序控制器304就确切地知道图像片段需要去往次要处理器的系统存储器305内的何处,且因此接着相应地编程硬件分散加载程序控制器304,以将数据片段直接传送到其目标目的地中。在图3的实例中,分散加载程序控制器304接收图像片段并将其分散到系统存储器305中的不同位置。在一个方面中,将可执行软件图像加载到次要处理器的系统存储器中,而不将整个可执行软件图像存储在次要处理器的硬件缓冲器中。 因此,在以上方面中,次要处理器中不发生额外的存储器拷贝操作。因此,将临时缓冲器用于整个图像以及包标头处置等的常规技术被绕过,以有利于更高效的直接加载过程。因此,图3的示范性加载过程不需要传统上将软件图像从主要处理器加载到次要处理器所需的中间缓冲器操作。作为从保持整个图像的临时缓冲器进行分散加载的替代,图3的示范性加载过程允许直接从硬件到系统存储器将图像片段直接分散加载到其相应的目标目的地。一旦处理了图像标头,就将可执行图像直接分散加载到目标存储器中,从而绕过进一步的CPU介入。常规上,当涉及外部接口(例如,如用于将图像数据从主要处理器传送到次要处理器中)时,需要某一机制来输送所述数据,使得两个处理器均知道实际数据是什么以及如何读取所述数据。通常,待经由外部接口传送的数据用每一包进行包化,所述包包含描述包内含有的数据的标头。举例来说,在其中正经由网络传送数据的传输控制协议/因特网协议(TCP/IP)系统中,出现与包标头的处理相关联的开销。根据本发明的某些方面(例如,如在图3的实例中),输送原始图像数据。举例来说,不是输送具有包标头的图像数据的每一片段,图3的示范性加载过程确定关于来自与整个图像相关联的标头的数据的所需信息。因此,可最初传送图像标头,且用于确定如何将数据存储到系统存储器305的所有处理可在片段的传送之前发生(基于图像标头),且接着将所述片段作为原始数据进行传送,而不是在传送片段时需要处理每一片段的包标头。因此,在图3的实例中,正将原始图像数据从主要处理器传送到次要处理器,且接着由硬件处置,所述硬件可剥离任何USB包标头等。在此示范性方面中,不对实际数据片段进行CPU处理,从而改善了加载过程的效率。根据本发明的一个方面,当必须将多个图像加载到同一次要处理器的易失性存储器中时,可将图3的上述序列重复与正传送的图像的数目一样多的次数。在某些方面中,在主要处理器301内,从非易失性存储器到系统存储器的传送可与将数据从主要处理器发送到次要处理器并行地发生。在一个方面中,在每一片段的传送完成后,次要处理器302即刻对分散加载程序控制器304进行编程,以传送下一片段且开始对刚刚传送的片段的验证。这使分散加载程序控制器304能够在次要处理器302执行验证的同时传送数据。此处,验证大体上涉及检查所接收数据的完整性和真实性。验证机制的细节在本发明的范围之外,在给定实施方案中可能需要时,可使用任何合适验证机制(包含此项技术中众所周知的那些机制)。上文提到的并行性还可适用于可能需要在给定实施方案中由次要处理器302执行的其它后传送处理。最后一个图像的最后一个片段一被传送并验证,次要处理器302就可继续引导过程并执行所传送的图像。在一个方面中,调制解调器(次要)处理器110从嵌入式引导只读存储器(ROM)执行引导加载程序。在此方面中,从硬件执行引导ROM消除了对调制解调器侧上的快闪存储器或装置的需要。ROM代码可由硅本身执行。图4是说明根据本发明一个方面的分散加载方法的流程图。如框402中所示,次要处理器经由芯片间通信总线从主要处理器接收用于次要处理器的可执行软件图像的图 像标头,所述可执行软件图像存储在耦合到主要处理器的存储器中,所述可执行软件图像包括图像标头和至少一个数据片段。如框404中所示,次要处理器处理图像标头,以确定次要处理器耦合到的系统存储器内的至少一个位置以存储至少一个数据片段。如框406中所示,次要处理器经由芯片间通信总线从主要处理器接收至少一个数据片段。如框408中所示,次要处理器将至少一个数据片段直接加载到系统存储器内的所确定的至少一个位置。在一个方面中,一种设备包含用于接收可执行图像的装置、用于处理图像标头的装置、用于接收数据片段的装置,以及用于加载数据片段的装置。这些装置可包含主要处理器301、次要处理器302、总线间通信总线310、存储器305或307、非易失性存储器306、控制器304,或硬件输送机构308或309。在另一方面中,前面提到的装置可为经配置以执行由前面提到的装置叙述的功能的模块或任何设备。鉴于上文,可经由互连接合(比如HS-USB或高速互连)从主要处理器加载次要处理器的软件图像,而不是直接从连接到次要处理器的非易失性存储器加载软件图像。次要处理器可不直接连接到非易失性存储器。因此,本发明的各方面可减少引导多处理器系统中的次要处理器所花费的时间,在所述引导过程中从主要处理器传送次要处理器图像。通过避免额外的存储器拷贝操作且实现具有后台数据处理(例如验证)的同时图像传送来实现此减少。图5是展示其中可有利地使用本发明的实施例的示范性无线通信系统500的框图。为了说明的目的,图5展示三个远程单元520、530和550,以及两个基站540。将认识至IJ,无线通信系统可具有多得多的远程单元和基站。远程单元520、530和550包含IC装置525A、525C和525B,IC装置525A、525C和525B包含所揭示的MRAM。将认识到,其它装置也可包含所揭示的MRAM,例如基站、切换装置和网络设备。图5展示从基站540到远程单元520,530和550的前向链路信号580,和从远程单元520、530和550到基站540的反向链路信号590。在图5中,将远程单元520展示为移动电话,将远程单元530展示为便携式计算机,且将远程单元550展示为无线本地环路系统中的固定位置远程单元。举例来说,远程单元可为移动电话、手持式个人通信系统(PCS)单元、便携式数据单元(例如个人数据助理)、具有GPS功能的装置、导航装置、机顶盒、音乐播放器、视频播放器、娱乐单元、固定位置数据单元(例如仪表读取设备),或存储或检索数据或计算机指令的任何其它装置,或其任何组合。虽然图5说明根据本发明的教示的远程单元,但本发明不限于这些示范性所说明单元。可在包含MRAM的任何装置中合适地使用本发明的实施例。对于固件和/或软件实施方案,可用执行本文所述的功能的模块(例如,程序、功能等等)来实施方法。可将有形地体现指令的任何机器可读媒体用于实施本文所述的方法。举例来说,可将软件代码存储在存储器中且由处理器单元执行。可在处理器单元内或处理器单元外部实施存储器。如本文中所使用,术语“存储器”指代任何类型的长期、短期、易失性、非易失性或其它存储器,且不限于任何特定类型的存储器或存储器数目,或其上可存储存储器的媒体类型。如果在固件和/或软件中实施,那么可将功能存储为计算机可读媒体上的一个或一个以上指令或代码。实例包含编码有数据结构的计算机可读媒体以及编码有计算机程序的计算机可读媒体。计算机可读媒体包含物理计算机存储媒体。存储媒体可为可由计算机存取的任何可用媒体。举例来说,且无限制地,此计算机可读媒体可包含RAM、R0M、EEPR0M、 CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用于以指令或数据结构的形式存储所要程序代码且可由计算机存取的任何其它媒体;如本文中所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘用激光以光学方式再现数据。以上各者的组合也应包括在计算机可读媒体的范围内。除存储在计算机可读媒体上之外,可提供指令和/或数据作为包含于通信设备中的传输媒体上的信号。举例来说,通信设备可包含具有指示指令和数据的信号的收发器。所述指令和数据经配置以致使一个或一个以上处理器实施权利要求书中概述的功能。尽管已陈述特定电路,但所属领域的技术人员将了解,并非需要所有所揭示的电路来实践本发明。此外,未描述某些众所周知的电路以维持关注本发明。虽然已详细描述本发明和其优点,但应理解,在不脱离如所附权利要求书所界定的本发明的技术的情况下,可在本文中作出各种改变、替代和变更。举例来说,相对于衬底或电子装置而使用关系术语,例如“上方”和“下方”。当然,如果将衬底或电子装置倒置,那么上方变为下方,且反之亦然。另外,如果横向定向,那么上方和下方可指代衬底或电子装置的侧面。此外,本申请案的范围无意限于说明书中所描述的过程、机器、制品、物质组成、手段、方法及步骤的特定实施例。如所属领域的技术人员将容易从本发明了解的,可根据本发明利用目前存在或稍后将开发的执行与本文中所描述的对应实施例大体上相同的功能或实现与其大体上相同的结果的过程、机器、制品、物质组成、手段、方法或步骤。因此,所附权利要求书意欲在其范围内包括此些过程、机器、制品、物质组成、手段、方法或步骤。
权利要求
1.一种多处理器系统,其包括 次要处理器,其包括系统存储器和用于接收可执行软件图像的至少一部分的硬件缓冲器,所述次要处理器包括用于将所述可执行软件图像从所述硬件缓冲器直接加载到所述系统存储器的分散加载程序控制器; 主要处理器,其与存储器耦合,所述存储器存储用于所述次要处理器的所述可执行软件图像;以及 接口,其以通信方式耦合所述主要处理器和所述次要处理器,所述可执行软件图像由所述次要处理器经由所述接口接收。
2.根据权利要求I所述的多处理器系统,其中所述分散加载程序控制器经配置以将所述可执行软件图像从所述硬件缓冲器直接加载到所述次要处理器的所述系统存储器,而不在所述次要处理器上的系统存储器位置之间拷贝数据。·
3.根据权利要求I所述的多处理器系统,其中所述可执行软件图像的原始图像数据由所述次要处理器经由所述接口接收。
4.根据权利要求I所述的多处理器系统,其中所述可执行软件图像包括图像标头和至少一个数据片段。
5.根据权利要求4所述的多处理器系统,其中所述次要处理器经配置以接收所述图像标头,且处理所述图像标头以确定所述系统存储器内的至少一个位置以存储所述至少一个数据片段。
6.根据权利要求5所述的多处理器系统,其中所述次要处理器经配置以在接收所述至少一个数据片段之前基于所述所接收到的图像标头来确定所述系统存储器内的所述至少一个位置以存储所述至少一个数据片段。
7.根据权利要求I所述的多处理器系统,其中所述次要处理器进一步包括存储引导加载程序的非易失性存储器,所述引导加载程序起始用于所述次要处理器的所述可执行软件图像的传送。
8.根据权利要求I所述的多处理器系统,其中所述主要和次要处理器位于不同芯片上。
9.根据权利要求I所述的多处理器系统,其中所述可执行软件图像的所述部分被加载到所述次要处理器的所述系统存储器中,而不将整个可执行软件图像存储在所述硬件缓冲器中。
10.根据权利要求I所述的多处理器系统,其被集成到移动电话、机顶盒、音乐播放器、视频播放器、娱乐单元、导航装置、计算机、手持式个人通信系统PCS单元、便携式数据单元和固定位置数据单元中的至少一者中。
11.一种方法,其包括 在次要处理器处经由芯片间通信总线从主要处理器接收用于所述次要处理器的可执行软件图像的图像标头,所述可执行软件图像存储在耦合到所述主要处理器的存储器中,所述可执行软件图像包括所述图像标头和至少一个数据片段; 通过所述次要处理器处理所述图像标头,以确定所述次要处理器耦合到的系统存储器内的至少一个位置以存储所述至少一个数据片段; 在所述次要处理器处经由所述芯片间通信总线从所述主要处理器接收所述至少一个数据片段;以及 通过所述次要处理器将所述至少一个数据片段直接加载到所述系统存储器内的所述所确定的至少一个位置。
12.根据权利要求11所述的方法,其进一步包括使用所述可执行软件图像来引导所述次要处理器。
13.根据权利要求11所述的方法,其进一步包括将所述可执行软件图像从硬件缓冲器直接加载到所述次要处理器的所述系统存储器,而不在系统存储器位置之间拷贝数据。
14.根据权利要求11所述的方法,其中所述处理在所述加载之前发生。
15.根据权利要求11所述的方法,其中所述主要和次要处理器位于不同芯片上。
16.根据权利要求11所述的方法,其进一步包括在移动电话、机顶盒、音乐播放器、视频播放器、娱乐单元、导航装置、计算机、手持式个人通信系统PCS单元、便携式数据单元和固定位置数据单元中的至少一者中执行所述接收、处理和加载。
17.—种设备,其包括 用于在次要处理器处经由芯片间通信总线从主要处理器接收用于所述次要处理器的可执行软件图像的图像标头的装置,所述可执行软件图像存储在耦合到所述主要处理器的存储器中,所述可执行软件图像包括所述图像标头和至少一个数据片段; 用于通过所述次要处理器处理所述图像标头以确定所述次要处理器耦合到的系统存储器内的至少一个位置以存储所述至少一个数据片段的装置; 用于在所述次要处理器处经由所述芯片间通信总线从所述主要处理器接收所述至少一个数据片段的装置;以及 用于通过所述次要处理器将所述至少一个数据片段直接加载到所述系统存储器内的所述所确定的至少一个位置的装置。
18.根据权利要求17所述的设备,其被集成到移动电话、机顶盒、音乐播放器、视频播放器、娱乐单元、导航装置、计算机、手持式个人通信系统PCS单元、便携式数据单元和固定位置数据单元中的至少一者中。
19.一种多处理器系统,其包括 主要处理器,其与第一非易失性存储器耦合,所述第一非易失性存储器耦合到所述主要处理器,且存储用于所述主要处理器的文件系统以及用于所述主要处理器和次要处理器的可执行图像; 次要处理器,其与第二非易失性存储器耦合,所述第二非易失性存储器耦合到所述次要处理器,且存储用于所述次要处理器的配置参数和文件系统;以及 接口,其以通信方式耦合所述主要处理器和所述次要处理器,可执行软件图像由所述次要处理器经由所述接口接收。
20.根据权利要求19所述的多处理器系统,其被集成到移动电话、机顶盒、音乐播放器、视频播放器、娱乐单元、导航装置、计算机、手持式个人通信系统PCS单元、便携式数据单元和固定位置数据单元中的至少一者中。
21.一种多处理器系统,其包括 主要处理器,其与第一非易失性存储器耦合,所述第一非易失性存储器耦合到所述主要处理器,且存储用于所述主要和次要处理器的可执行图像和文件系统;次要处理器,其不直接耦合到所述第一非易失性存储器;以及 接口,其以通信方式耦合所述主要处理器和所述次要处理器,可执行软件图像由所述次要处理器经由所述接口接收。
22.根据权利要求21所述的多处理器系统,其被集成到移动电话、机顶盒、音乐播放器、视频播放器、娱乐单元、导航装置、计算机、手持式个人通信系统PCS单元、便携式数据单元和固定位置数据单元中的至少一者中。
23.—种方法,其包括 经由以通信方式耦合主要处理器和次要处理器的接口从耦合到所述主要处理器的存储器发送用于所述次要处理器的可执行软件图像; 在所述次要处理器处接收所述可执行软件图像;以及 在所述次要处理器处执行所述可执行软件图像。
24.根据权利要求23所述的方法,其进一步包括在移动电话、机顶盒、音乐播放器、视频播放器、娱乐单元、导航装置、计算机、手持式个人通信系统PCS单元、便携式数据单元和固定位置数据单元中的至少一者中执行所述发送、接收和执行。
全文摘要
在多处理器系统中,将包含图像标头和经分段数据图像的可执行软件图像从第一处理器分散加载到第二处理器。所述图像标头含有将要被分散加载到所述第二处理器的存储器中的数据图像片段的目标位置。一旦已处理所述图像标头,就可将所述数据片段直接加载到所述第二处理器的所述存储器中,而无来自所述第二处理器的进一步CPU介入。
文档编号G06F15/177GK102812453SQ201180014509
公开日2012年12月5日 申请日期2011年3月22日 优先权日2010年3月22日
发明者尼丁·古谱塔, 丹尼尔·H·金, 伊戈尔·马拉曼特, 史蒂夫·黑尼辰 申请人:高通股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1