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

文档序号:9929498阅读:来源:国知局
,那么可使用调制解调器文件系统的当前版本。同步可周期性地发生(例如,每九十秒)或在调制解调器对其文件系统的写入操作之后的某一时间之后发生。为了防止来自例如突发性电力移除等情形的崩溃,可存储调制解调器文件系统220的两个拷贝。
[0043]调制解调器处理器210还可起始文件系统镜像228到应用处理器的非易失性存储器206的“冲洗”操作。这可出于多种原因而发生,包含电话断电,以及将确认消息发送给网络以指示传入的SMS消息的接受和存储。
[0044]调制解调器处理器210上的文件系统读取操作是从调制解调器处理器易失性存储器212服务,其反映调制解调器文件系统的当前状态。因为读取操作比写入操作频繁,且写入操作趋向于以活动“突发”的形式发生,因此可降低整个系统的负载和电力消耗。
[0045]应用处理器204、调制解调器处理器210和引导加载程序在原地具有特定措施以确保无论什么时候在非易失性存储器206中总是存在可用的至少一个完整文件系统图像。这提供对失电和意外复位情景的免疫力。
[0046]本文所揭示的概念的应用不限于上文所示的示范性系统,而是可同样与各种其它多处理器系统一起使用。
[0047]零拷贝输送流
[0048]本发明的各方面提供用于将可执行软件图像从主要处理器的非易失性存储器高效地加载到次要处理器的易失性存储器的技术。如上文所提到,传统的加载过程需要中间步骤,其中二进制多分段式图像经过缓冲(例如,将其传送到系统存储器中),且接着稍后将其分散到目标位置中(例如,通过引导加载程序)。本发明的各方面提供减轻传统的加载过程中所需的中间缓冲步骤的技术。因此,本发明的各方面避免了额外的存储器拷贝操作,从而改善了性能(例如,减少了引导多处理器系统中的次要处理器所需的时间)。
[0049]如下文进一步论述,本发明的一个示范性方面使用用于将可执行软件图像从主要处理器的非易失性存储器加载到次要处理器的易失性存储器的直接分散加载技术。本发明的某些方面还实现具有后传送数据处理(例如验证)的同时图像传送,这可进一步改善效率,如下文进一步论述。
[0050]在一个方面中,主机主要处理器并不处理任何信息或从实际图像数据提取任何信息,其仅将图像数据作为“原始”数据发送给目标,而无附接到包的任何包标头。因为目标次要处理器起始数据传送请求,因此其确切地知道要接收多少数据。这使得主机能够发送不具有包标头的数据,且使得目标能够直接接收和存储所述数据。在所述方面中,目标在需要时向主机请求数据。目标所请求的第一数据项目为用于给定图像传送的图像标头。一旦目标已处理图像标头,其就知道图像中的每一数据片段的位置和大小。图像标头还指定图像在目标存储器中的目的地地址。通过此信息,目标可向主机请求用于每一片段的数据,且将数据直接传送到目标存储器中的适当位置。用于应用处理器上的芯片间通信总线的硬件控制器可添加其自身的低级协议标头,所述低级协议标头将由调制解调器处理器处理并剥离。这些低级标头对于在两个处理器上运行的软件来说可为透明的。
[0051]在本发明的一个方面中,将加载过程分为两个阶段,如图3中所示的示范性流程中所说明。图3展示主要处理器301(其可为具有其非易失性存储器106或206的图1或2的应用处理器104或204)和次要处理器302(其可为具有其易失性存储器112或212的图1或2的调制解调器处理器110或210)的框图。在图3中,将用于次要处理器302的示范性软件图像存储到主要处理器301的非易失性存储器。如此实例中所示,示范性软件图像303为包含图像标头部分和多个数据片段(在此实例中展示为数据片段I到5)的多片段图像。主要处理器301和次要处理器302可位于不同的物理硅芯片上(S卩,不同芯片封装上)或可位于同一封装上。
[0052]在图3的示范性加载过程的第一阶段中,将图像标头信息传送到次要处理器302。主要处理器301从主要处理器306的非易失性存储器检索以图像标头开始的数据图像片段。主要处理器301解析图像标头以将个别图像片段从主要处理器306的非易失性存储器加载到主要处理器307的系统存储器。图像标头包含用以识别最终将调制解调器图像可执行数据放置到次要处理器305的系统存储器中何处的信息。当接收实际可执行数据时,次要处理器302使用标头信息来对分散加载程序/直接存储器存取控制器304的接收地址进行编程。接着将数据片段从系统存储器307发送到主要硬件输送机构308。接着经由芯片间通信总线310(例如,HS-USB缆线)将片段从主要处理器301的硬件输送机构308发送到次要处理器302的硬件输送机构309。所传送的第一片段可为图像标头,其含有由次要处理器用来将数据片段定位到次要处理器305的系统存储器中的目标位置中的信息。图像标头可包含用以确定数据的目标位置信息的信息。
[0053]在一个方面中,目标位置不是预定的,而是作为分散加载过程的一部分由在次要处理器中执行的软件确定。来自图像标头的信息可用以确定目标位置。在此方面中,次要处理器的引导加载程序首先向主要处理器请求图像标头(主要处理器CPU完全不处理图像标头)。次要处理器通过查看图像标头而知道数据片段在非易失性存储器中如何分布(除RAM地址/大小之外,标头还包含在非易失性存储器中相对于每一片段的图像文件的开始的相对位置)。对数据片段的后续请求由次要处理器驱动。
[0054]在另一方面中,主要处理器可通过解析图像标头且接着对次要处理器的控制器进行编程以将随后的数据片段放置在图像标头中所指定的指定地址中,来将片段放入次要处理器的易失性存储器中。这可涉及用以允许对次要处理器的控制器的此外部控制的额外硬件。
[0055]图像标头通常包含片段开始地址和大小的列表,所述片段开始地址和大小界定所述片段中的每一者应被加载在次要处理器的系统存储器305中的何处。次要处理器302包含硬件输送机构309 (例如,USB控制器),硬件输送机构309包含分散加载程序控制器304。在加载过程的第二阶段中,引导加载程序对芯片间连接控制器的引擎进行编程,以接收传入的数据并根据在第一阶段中接收到的标头信息将其分散加载到次要处理器的对应目标存储器区305中。
[0056]在USB或HSIC总线的情况下,可将图像的每一片段作为单个USB传送在芯片间通信总线310上传送。知道片段的大小和目的地地址允许软件对次要处理器302的分散加载程序控制器304进行编程,以用于在次要处理器302进行的最少软件干预的情况下,将整个片段直接传送到目标存储器位置中(系统存储器305内)。这可在片段相当大(例如,超过I兆字节(MB))时产生USB/HSIC总线上的增加的性能。
[0057]如图3中所示,不一定将图像片段放置到次要处理器的系统存储器305内的连续位置中。而是片段可散布在存储器的不同位置中。图3的示范性加载过程使次要处理器的软件(即,图像303)的拷贝能够从主要处理器301直接发送到次要处理器的系统存储器305上的最终片段目的地。
[0058]将图像标头从主要处理器301加载到次要处理器302的分散加载程序控制器304。所述图像标头提供关于数据片段将位于系统存储器305中的何处的信息。分散加载程序控制器304因此将图像片段直接传送到其在次要处理器的系统存储器305中的相应目标位置中。也就是说,一旦次要处理器的CPU处理其存储器305中的图像标头并对分散加载程序控制器304进行编程,分散加载程序控制器304就确切地知道图像片段需要去往次要处理器的系统存储器305内的何处,且因此接着相应地编程硬件分散加载程序控制器304,以将数据片段直接传送到其目标目的地中。在图3的实例中,分散加载程序控制器304接收图像片段并将其分散到系统存储器305中的不同位置。在一个方面中,将可执行软件图像加载到次要处理器的系统存储器中,而不将整个可执行软件图像存储在次要处理器的硬件缓冲器中。
[0059]因此,在以上方面中,次要处理器中不发生额外的存储器拷贝操作。因此,将临时缓冲器用于整个图像以及包标头处置等的常规技术被绕过,以有利于更高效的直接加载过程。因此,图3的示范性加载过程不需要传统上将软件图像从主要处理器加载到次要处理器所需的中间缓冲器操作。作为从保持整个图像的临时缓冲器进行分散加载的替代,图3的示范性加载过程允许直接从硬件到系统存储器将图像片段直接分散加载到其相应的目标目的地。一旦处理了图像标头,就将可执行图像直接分散加载到目标存储器中,从而绕过进一步的CPU介入。
[0060]常规上,当涉及外部接口(例如,如用于将图像数据从主要处理器传送到次要处理器中)时,需要某一机制来输送所述数据,使得两个处理器均知道实际数据是什么以及如何
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1