操作系统友好引导加载器的制作方法

文档序号:6566505阅读:213来源:国知局
专利名称:操作系统友好引导加载器的制作方法
技术领域
本发明涉及对具有多个可编程处理器的电子系统的初始化。
背景技术
对具有连接到用于存储程序指令或代码以及数据的一个或更多个存 储装置的可编程处理器的电子系统进行启动或引导的处理并不像初看起 来的那么简单。其原因的一个重要部分是处理器必须在良好定义的状态 下开始操作。
向裸系统加载程序代码和数据的传统方式是将该代码和数据直接
"推入"到系统的随机访问存储器(RAM)中或者使用引导加载器。引 导加载器(有时称为启动加载器或引导程序加载器)是可从非易失性存 储器(诸如只读存储器(ROM))"推入"到系统的RAM中或者加载到 RAM中的指令集合(即程序代码,有时称为"引导代码")。在由处理器 执行所述指令集合时,该引导加载器随后"拖"入其余代码和数据并启 动系统。
用于启动处理器系统的包括引导加载器的现有机制的示例包括 Tulpule等的美国专利第5,652,886号和Barton等的美国专利第6,490,722 号以及Wong等的美国专利申请公报第US 2002/0138156 Al号。Barton 等的专利文件例如描述了一种两阶段引导加载器,其中第二阶段对操作 系统进行查找、校验以及加载。在Wong等的专利文件中,多处理器系统 利用与ROM耦合的主处理器向从处理器传送引导代码,而从处理器中的 存储器控制器拒绝存储器访问请求,直到引导代码已传送到这些从处理 器的RAM为止。
如Barton等和Wong等的专利文件所指出的那样,例如启动多处理 器系统(通常认为该多处理器系统具有主处理器或主机处理器(即,命
令进行引导的系统)和一个或更多个从处理器或客户机处理器(即,待 引导系统))比启动单处理器系统甚至更复杂。
"推"方法的优点在于.,在引导过程中不需要在从处理器中执行代 码,并且所需要的唯一同步处理是将从处理器保持在复位状态并在加载 完成时解除所述保持。然而,"推"方法仅当从处理器的一个或多个存储 器对于主机处理器可见时才有效。所述可见性可按几种方式来实现。例 如,存储器可以在主机处理器和从处理器的地址和数据总线上是可见的, 或者允许从主机处理器的一个或多个存储器向从处理器的一个或多个存 储器进行直接存储器访问(DMA)传送。
当从处理器的待加载存储器对于主机处理器不可见时,不能使用 "推"方法。在此情况下,必须使用某些形式的引导加载处理。如上所 述,引导加载器技术要求能够将引导代码推到从处理器上(这在此情况 下是不可能实现的)或者要求从处理器能够从非易失性存储器加载代码。 引导加载器随之开始从主机处理器向从处理器的代码传送,从而完成对 存储器的加载。
可能存在其中从处理器的某些或者全部的存储器对于主机处理器不 可见的多处理器系统。在这种系统中,利用良好建立的软件框架来进行 加载和处理器间通信是有利的,这导致不再期望使用传统的引导加载器。 此外,引导加载器可能与操作系统存在冲突,可以说操作系统希望能控 制整个系统和所有存储器。
当将引导加载器与操作系统(OS)集成起来时所面临的问题是确 保不执行尚未加载的代码,将代码高效地加载到对于主机处理器不可见 的一个或多个存储器中,并使对(多个)从处理器的加载和引导与主机 处理器相同步。此外,必须确定应当将系统的哪些部分加载到对于主机 处理器和从处理器均可见的存储器中,并且必须确定应当如何排列待加 载的二进制映像以使引导加载器与OS —起工作。可能重要的另一个问题
是对引导加载器与os的集成,因为随后在加载过程中可能使用已经建立
的用于主机处理器与从处理器之间的通信的框架。这种框架通常依赖于
OS特性而包括用于通信的一个或更多个原型(primitive)。

发明内容
在一个方面中,本发明提供了一种在包括主处理器和从处理器的多 处理器系统中向所述从处理器加载程序代码的方法。该方法包括以下步 骤将所述从处理器复位并将所述从处理器保持在复位状态下;将信息 推入到所述主处理器和所述从处理器都可访问的第一存储器中;引导所 述从处理器;启动所述从处理器中的操作系统,包括阻断对程序代码位
于所述从处理器可访问但所述主处理器不可访问的第二存储器中的进程
的调度;在所述第一存储器中预留中间存储区;向所述主处理器发送关 于所预留的中间存储区的位置和大小的信息;基于所发送的信息,将待 加载到所述第二存储器中的信息加载到所述中间存储区中;向所述从处 理器发送表示已对所述中间存储区进行了加载和是完成了加载处理还是 要加载其它信息的第一消息;将所述中间存储区中的信息复制到所述第 二存储器中;以及向所述主处理器发送表示已复制了所述中间存储区中 的信息的第二消息。
在本发明的另一方面中,提供了一种多处理器系统,所述系统包括 主机处理器、至少一个客户机处理器、所述主机处理器和所述客户机处 理器都可访问的第一随机访问存储器、所述客户机处理器可访问但所述 主机处理器不可访问的第二随机访问存储器、以及引导加载器。所述第 一存储器包括中间存储区,并且所述引导加载器包括主机部分和客户机 部分。该主机部分可加载到所述第一随机访问存储器中,并且具有第一 阶段和第二阶段。所述第一阶段将所述客户机处理器复位并将其保持在 复位状态下,并且将信息推入到所述第一随机访问存储器中。所述第二 阶段由所述客户机部分来启动,将待加载到所述第二随机访问存储器中 的信息加载到所述中间存储区中,并且向所述客户机部分发送表示已对 所述中间存储区进行了加载的第一消息。所述客户机部分可加载到所述 第一随机访问存储器中,并且所述客户机部分启动操作系统,包括启动 空闲进程并且最初阻断对程序代码位于所述第二随机访问存储器中的所 有进程的调度;将加载到所述中间存储区中的信息复制到所述第二随机
访问存储器;并且向所述主机部分发送表示己复制了信息的第二消息。
在本发明的另一方面中,提供了一种计算机可读介质,所述计算机 可读介质包含有在包括主处理器和从处理器的多处理器系统中向所述从 处理器中加载信息的计算机程序。该计算机程序执行以下步骤将所述 从处理器复位并将所述从处理器保持在复位状态下;将信息推入到所述 主处理器和所述从处理器都可访问的第一存储器中;引导所述从处理器;
启动所述从处理器中的操作系统,包括阻断对程序代码位于所述从处理
器可访问但所述主处理器不可访问的第二存储器中的进程的调度;在所
述第一存储器中预留中间存储区;向所述主处理器发送关于所预留的中 间存储区的位置和大小的信息;基于所发送的信息,将待加载到所述第 二存储器中的信息加载到所述中间存储区中;向所述从处理器发送表示 已对所述中间存储区进行了加载和是完成了加载处理还是要加载更多信 息的第一消息;将所述中间存储区中的信息复制到所述第二存储器中; 以及向所述主处理器发送表示已复制了所述中间存储区中的信息的第二 消息。


通过结合附图阅读本说明,将理解本发明的各种特征、目的以及优 点,在附图中
图1描绘了多处理器系统; 图2是OS友好引导加载器的流程图;以及 图3描绘了中间存储区的构造的实施例。
具体实施例方式
如上所述,常规引导加载器会与多处理器系统的操作系统存在冲突。 本申请描述了在如下系统中满足将OS与引导加载器集成在一起的要求 的OS友好引导加载器和方法,在所述系统中,主机处理器和客户机处理 器具有通信机制,该通信机制需要OS来使其工作,并且客户机处理器具 有两个存储器系统 一个存储器系统对于主机处理器和客户机处理器都
可见, 一个存储器系统只对于客户机处理器可见。
图1描绘了包括主机处理器102和客户机处理器104的这种多处理
器系统100。应当理解,尽管图1只示出了一个客户机处理器104,但是
也可设置更多客户机处理器。还应当理解,主机处理器和客户机处理器
可以是任何可编程电子处理器。在图1所示的实施例中,将处理器102 示为先进RISC机(ARM)的中央处理单元(CPU),并将处理器104示 为数字信号处理器(DSP)装置的CPU。图1中的虛线描绘出主机设备 与从设备之间(在该实施例中是ARM与DSP之间)的硬件边界,以及 非易失性存储器106。存储器106可以是ROM、闪存存储器或其他类型 的非易失性存储器装置。
大多数市场上可获得的DSP装置包括芯片上存储器,并且如图l所 示,DSP包括"内部"单通道RAM (SARAM)和双通道RAM (DARAM) 108,以及"外部"RAM (XRAM) 110。如以下更详细描述的,在存储 器108中限定有由虚线表示的中间存储区。图1中的箭头表示CPU与存 储器之间的访问路径,例如总线和DMA路径。ARM主机CPU102可以 访问非易失性存储器i06和DSP的SARAM和DARAM 108,但不能访 问DSP的XRAM 110,而DSP从CPU 104可以访问所有RAM 108、 110。
可通过普通的"推"方法从非易失性存储器106对SARAM和 DARAM 108进行加载。然而,当在引导过程中需要向XRAM 110加载 代码时,需要一种引导加载器解决方案,因为XRAM 110对于CPU 102 不可见(即,不能由CPU102访问),因此不能将引导代码推入到XRAM 110。
如以下参照图2的流程图更详细描述的,OS友好引导加载器的优势 在于具有被加载到对于主处理器和从处理器均可见的一个或多个存储器 (例如SARAM和DARAM 108)中的主机部分和客户机部分。
可将OS友好引导加载器的主机部分视为包括两个操作阶段或者两 个操作模式。第一阶段将从处理器104复位并将其保持在复位状态下(步 骤202),并且按常规方式将信息(程序指令和/或数据)从非易失性存储 器106推入到都可见的存储器108中(步骤204)。被推入到这些存储器
中的信息主要是引导加载器、OS以及对于该OS的任何必要启动代码。 应当理解,应用(多个应用)及其部分也可在启动时被推入到这些存储 器中,并且可在对"外部"存储器110进行加载的过程中执行。当完成
了该"推"处理时(步骤206),允许引导从处理器104 (步骤208)并启 动OS (例如解除从处理器的复位状态)及其常规通信机制(步骤210)。 接着,主机部分等待来自从处理器的消息,如以下更详细描述的那样开 始其第二阶段操作。
已加载到(通过主机部分的第一阶段"推"到)都可见的存储器108 中的OS友好引导加载器的从部分对操作系统进行启动,执行以下操作
(步骤210)。首先,创建中断处理程序。因为中断可能在任何时候发生, 所以中断处理程序的代码必须位于已被加载的存储器中。其次,创建公 共进程(即,在主机处理器和从处理器中均运行的进程)的数据结构(例 如,进程控制块和堆栈)。应当理解,由于尚未执行这些公共进程,所以 可稍后加载它们的代码,并且这些代码位于仅对从处理器可见的"外部" 存储器(例如,XRAM110)中是非常好的。第三,创建系统空闲进程。 因为空闲进程是在没有值得处理的事情时,由OS选择来运行的进程,所 以必须将该空闲进程的代码置于已经被加载的存储器中。第四,阻断对 至少驻留在"外部"存储器110中(即,程序代码或数据位于"外部" 存储器110中)的全部进程的调度。如上所述,因此有利的是可与加载
"外部"存储器并行地启动或继续执行驻留在"内部"存储器中的进程。 也可以停止对除空闲进程以外的所有进程的调度,但这不是必须的。让 阻断处理成为OS调度程序开始运行之前所做的最后一项操作,确保了在 调度程序释放时将不会运行这些进程中的代码。最后,释放OS调度程序, 这允许OS开始执行代码并对进程进行调度。应当理解,由于阻断了至少 所有外部存储器进程调度处理,所以OS现在所能做的就是对中断和空闲 进程进行调度。
此时,从处理器104已部分启动并运行。OS友好引导加载器的从部 分已被加载,并且正在执行从处理器的空闲进程。从处理器的OS可以响 应于中断而对代码进行调度和执行,并且可对空闲进程和代码驻留在内
部存储器中的任何未阻断进程进行调度。可以使用所有代码和数据访问
都在己被加载的存储器(在本实施例中是SARAM和DARAM 108)中的 包括常规通信机制在内的OS机制。作为DMA、共享存储器以及结构化 寄存器的高级抽象的这些OS通信机制,比简单的信号机(semaphore) 更有能力,并且使得主机处理器能够与尚未完全启动的处理器(从处理 器)(就是主要只执行OS、中断服务以及驻留在"内部"RAM中的进程 的处理器)进行高效通信。
空闲进程在从处理器的对主机处理器可见的存储器(如"内部"存 储器108)中的存储器堆栈中预留一存储器块(步骤212)。如以下更详 细所述,该预留存储器块用于对要传送到从处理器专用存储器(即,对 主机处理器不可见的存储器,如"外部"XRAM 110)的信息(代码和/ 或数据)进行中间存储。从处理器的空闲进程有利地利用已建立的通信 机制向主机处理器发送关于前一步骤中预留的中间存储区的地址和大小 或长度的信息(步骤214)。在发送了该信息(其可能包含在一个或更多 个合适的消息中)之后,从处理器块等待来自主机处理器的消息。当"被 阻挡"时,从处理器不进行任何其他加载活动,直到它接收到主机处理 器的响应为止。
应当理解,从处理器的OS在此阶段是否对中断采取行动取决于该 中断的性质。由于许多OS机制(例如,如用于与主机处理器进行通信的 那些OS机制)依赖于中断,并且无法预先知道何时将发生中断,因此必 须已将所有中断代码都加载到"内部"存储器中。在这方面,在引导加 载处理的第二阶段中响应中断。然而,如果中断要触发诸如开始进行数 据处理的多个进程的事件链,并且用于这些进程的代码或数据都位于或 将位于"外部"存储器中,则阻挡该中断并且中断服务将请求放入该进 程的"进入队列"中,使得在完成引导之后可响应该请求并且执行该进 程。
当接收到从处理器的信息时,主机引导加载器的第二阶段将待加载 到从处理器的不可见存储器中的信息(代码和/或数据)填充到中间存储 区中(步骤216)。因为该区是两个处理器都可以访问的存储区,因此按
常规方式将代码和数据推到中间存储区中,但该推处理是通过os通信机 制来激活的。
现在主机处理器向从处理器发送表示已对中间存储区进行了加载和 是完成了加载处理还是还有其它代码和/或数据的消息(步骤218)。这是 从处理器正在等待的消息。主机处理器现在随之阻断,等待来自从处理 器的消息。从处理器将中间存储区的内容复制到其从处理器专用存储器
中的合适位置中(步骤220),由此实现其实际加载。从处理器随后向主
机处理器发送表示从处理器己复制了中间存储区的内容的消息(步骤
222)。
如果存在其它待加载代码和/或数据(步骤224),则可将该复制和消 息发送循环(步骤216到224)重复需要的次数。当完成了加载时,艮P, 当没有需要复制到从处理器的信息时,从处理器释放对先前被阻断的进 程的阻断,从而允许调度其从处理器专用存储器中的代码(步骤226)。 现在完成了加载。
如上所述,主机处理器将从处理器要复制到从处理器专用存储器110 中的最终目的地的代码和数据填充到存储器108中的中间存储区中。进 行此处理的最简单的方式可能是在中间存储区中的所有代码和数据之前 加上含有块待加载到的目的地地址和块长度的标签。图3描绘了中间存 储区的这种构造的一个实施例。待传送到中间存储区中的代码和/或数据 的块包括表示该块的长度和要将该块加载到从存储器中的位置(即,目 的地地址)的头部。如图3中的虚线所示,在中间存储区中可以串接 (concatenate)几个这禾中块。
可按许多方式将待装载的信息(代码和数据)排列在中间存储区和 存储器中。通常将信息排列成待加载到不同地址的多个连续信息块,因 此任意选择的中间存储区大小可能并不与所有这种块的大小都匹配。而 且,应当理解,如果中间存储区一直是填满的,则系统将运转得更高效。 这意味着如果待加载的块比该中间存储区小,则应当同时执行对几个(较 小)块的传送。这还意味着如果块比中间存储区的剩余部分大时应当划 分该块,并将一部分传送到中间存储区中,而将剩余部分传送到下一块
中。此外,如果某个块比中间存储区大数倍,则可多次划分该块。按计 算机技术人员已知的方式在OS友好引导加载器的主机部分中执行所有 这种划分和串接。从数据通信工程师的角度来看,OS友好引导加载器的 主机部分因此是一种"传输层"。
本领域的技术人员将明了从信息到传送块的这种划分和串接的益 处。需要某种通信机制来执行存储器之间的信息的实际传送,无论使用 哪种机制,通常越少的大量传送优于越多的小量传送。保持满载的中间 存储区通过有利地使通信信道开销最小化而可更高效地利用可用带宽。 每个消息都需要一定量的管理和管理信息,因此更少的消息意味着更小 的开销。
块划分和串接效果的益处的一个优选示例是作为通信机制的DMA。 DMA通常需要一些设置开销(即,它需要一些时间来进行设置),但DMA 一旦启动了就非常高效,因为其可按最小的CPU周期来执行传送。为了 获得使用DMA的最大益处,应当每次执行硬件所允许的最大DMA传送。 因此,目前相信将中间存储区的大小设定为最大DMA块大小是有利的。
OS友好引导加载器的主机部分应当"知道"何时离开其第一阶段(通 过将信息推入到存储器中来加载信息)并进入其第二阶段(通过-一个或 更多个通信机制来加载信息)。但主机处理器终究不能将信息推入到对于 它不可见的存储器中。尽管从处理器在已到达空闲进程时向主机部分发 送了消息,但是这可能不足以使主机部分告诉从处理器幵始执行。可将 从推处理到引导加载处理的这一转变看作从被动加载的范例(即,在从 处理器中不执行代码)到主动加载的范例(即,从处理器部分地活动、
执行)的变化。
主机部分知道何时改变阶段的一个方式是利用关于应当加载到什么 存储器的信息来对要加载的代码和数据添加标签。例如,待提供给不可 见存储器的信息可包括表示要将该信息加载到不可见存储器中的一个或 多个标签。缺少这种标签则表示要将该信息加载到可见存储器中,但应 当明白,也可使用明确表示要将该信息加载到可见存储器中的标签。这 使得主机处理器能够对信息执行双路传送,并且每路传送上仅加载所要
求的信息。在第一路传送中,将查找并加载进入内部存储器的内容,在 第二路传送中,将查找并加载进入外部存储器的内容。
目前看起来更简单的另一方式是对从处理器专用存储器进行设置, 使得它的所有内容都驻留在预定地址以上(或以下)。随后对要传送的信 息进行相应排序,将待加载到从处理器专用存储器中的所有代码和数据 段都放置在排序后的映像的末端(或开头)处。然后,当遇到比所述预 定(边界)地址大(或小)的地址时,OS友好引导加载器的主机部分所 能做的就是进入其第二阶段。
为了在主机侧节省存储器或增强代码完整性和平台安全性,也可以 按几种不同的方式对要加载到从处理器的信息进行预处理。例如,可根 据适当算法对该信息进行压缩,从而减小在主机侧上的该信息所需的存 储器的大小。对于另一实施例,可以对该信息进行加密,从而增强平台 安全性,因为可能存在的黑客将不能容易地对信息进行分解。目前相信 如果待加载到从处理器的信息是存储在主机处理器的内部文件系统中 的,则加密处理是有价值的,因为在此情况下该信息对于任何人来说(至 少在理论上)都是可获得的。
根据本说明,应当明白,OS机制对于OS友好引导加载器的由从处
理器执行的从部分有效,并且从处理器可以对通信所需的现有依赖于OS
的代码进行再使用。此外,由于主机部分自动决定何时从第一阶段(或
推模式)切换到第二阶段(或引导加载器模式),所以os友好引导加载
器可高效地利用加载资源(例如,DMA)。
预期本发明可在包括例如移动通信设备的广泛的各种环境下实施。 较新的这种装置可使用在此描述的OS友好引导加载器来引导它们的 DSP,这些DSP被提供用于与它们的主处理器软件系统相协作地处理多 媒体任务。
在此描述的OS友好引导加载器考虑了操作系统并且实际上在操作 系统上执行。在引导从处理器或者再引导从处理器时,主机处理器完全 运行。本引导加载器不要求主机处理器处于特定状态以启动从处理器。 实际上,可在执行主机处理器软件的过程中的任何时刻执行对从处理器 的启动。在正从主机处理器向从处理器和主机不可访问RAM加载信息
时,os友好引导加载器不需要在从处理器中运行的特殊可执行文件。将
一个可执行代码链接到所有从处理器的存储器。在加载所有代码之前引 导从处理器,但不运行被链接到主机处理器不可访问的存储器的代码, 直到在链接到从处理器的主机处理器可访问的存储器的代码的帮助下加 载了该代码为止。
因此应当明白,在此描述的OS友好引导加载器还能够改变在从处 理器中执行的软件并且在完全加载应用软件之前启动对该应用软件的从 动执行。可以选择一个或更多个应用进程,由引导加载器将它们"推" 入从处理器的主机处理器可访问的存储器中,并且这些进程将在开始对 从处理器的主机处理器不可访的问存储器进行加载的相同时间点开始执 行。
该能力在许多装置中和许多应用情况中都是很重要的。在移动电话 中,例如,这种应用情况包括进行呼叫、接收呼叫、对语音进行压縮/解 压缩、播放音乐文件等。利用在此描述的OS友好引导加载器,实际上可 以在主机处理器正在运行的任何时刻在从处理器中加载并执行新软件。
应当理解,上述过程可根据需要重复执行。为了便于理解,根据可 由例如可编程计算机系统的组件来执行的动作序列来描述本发明的许多 方面。应当认识到,可由专用电路(例如相互连接以执行专用功能的多 个离散逻辑门,或专用集成电路)、由一个或更多个处理器执行的程序指 令或由这两者的组合来执行各种动作。
此外,还可考虑将在此描述的本发明全部实现任何形式的计算机可 读存储介质中,所述计算机可读存储介质存储有可由或者结合指令执行 系统、设备或装置(诸如基于计算机的系统、含有处理器的系统、或者 可从介质取出指令并执行指令的其他系统)使用的适当指令组。在此使 用时,"计算机可读介质"可以是包含、存储、传达、传播或传输由或者 结合指令执行系统、设备或装置使用的程序的装置。该计算机可读介质 例如可以是(但不限于)电子、磁、光、电磁、红外或半导体系统、设 备、装置或传播介质。该计算机可读介质的更具体的示例(非穷举列表)
包括具有一条或更多条导线的电连接、便携式计算机磁盘、RAM、 ROM、 可擦除可编程只读存储器(EPROM或闪存存储器)以及光纤。
因此,本发明可实现为多种不同的形式,以上并未描述所有形式, 所有这些形式都应当在本发明的范围内。对于本发明的各种方面中的每 一个方面,可以将任何这种形式称为"被配置成"执行已描述的动作的 "逻辑",或者另选地称为执行己描述的动作的"逻辑"。
需要强调的是,术语"包括"在本申请中使用时是指存在所陈述的 特征、整数、步骤或组成部分,但不排除一个或更多个其他特征、整数、 步骤、组成部分或其群组的存在或者附加。
上述具体实施方式
仅是例示性的,不应当被认为是在任何方面的限 制。本发明的范围由所附权利要求来确定,并且旨在包括落入所述权利 要求范围内的所有变型例和等同例。
权利要求
1、一种在包括主处理器和从处理器的多处理器系统中向所述从处理器中加载信息的方法,所述方法包括以下步骤a)将所述从处理器复位并将所述从处理器保持在复位状态下;b)将信息推入到所述主处理器和所述从处理器都可访问的第一存储器中;c)引导所述从处理器;d)启动所述从处理器中的操作系统,包括阻断对程序代码位于所述从处理器可访问但所述主处理器不可访问的第二存储器中的进程的调度;e)在所述第一存储器中预留中间存储区;f)向所述主处理器发送关于所预留的中间存储区的位置和大小的信息;g)基于所发送的信息,将待加载到所述第二存储器中的信息加载到所述中间存储区中;h)向所述从处理器发送表示已对所述中间存储区进行了加载和是完成了加载处理还是要加载其它信息的第一消息;i)将所述中间存储区中的信息复制到所述第二存储器中;以及j)向所述主处理器发送表示已复制了所述中间存储区中的信息的第二消息。
2、 根据权利要求1所述的方法,所述方法还包括以下步骤如果存 在其它待加载的信息,则重复步骤g到j,直到没有其它待加载的信息为 止。
3、 根据权利要求1所述的方法,其中,步骤d)包括以下步骤创 建中断处理程序,并创建在所述主处理器和所述从处理器两者中运行的 迸程的数据结构。
4、 根据权利要求1所述的方法,其中,被推入到所述第一存储器中 的信息包括所述操作系统和至少一个应用的至少一部分。
5、 根据权利要求1所述的方法,其中,步骤d)包括以下步骤阻 断对除空闲进程以外的所有进程的调度。
6、 根据权利要求1所述的方法,其中,步骤g)包括以下步骤在 待加载到所述第二存储器中的信息之前,添加表示所述信息待加载到所 述第二存储器中的地址和所述信息的长度的至少一个标签。
7、 根据权利要求1所述的方法,其中,步骤g)包括以下步骤将 待加载到所述第二存储器中的信息划分成多个块,并且将第一块加载到 所述中间存储区中。
8、 根据权利要求7所述的方法,所述方法还包括以下步骤连续针 对各个块,重复步骤g到j。
9、 根据权利要求l所述的方法,其中,被推入到所述第一存储器中 的信息包括表示是否要将所述信息加载到所述第二存储器中的至少一个 标签。
10、 根据权利要求1所述的方法,其中,待加载到所述第二存储器 中的信息是压縮信息和加密信息中的至少一个。
11、 一种多处理器系统,所述系统包括主机处理器; 至少一个客户机处理器;第一随机访问存储器,其可由所述主机处理器和所述客户机处理器 访问,其中,所述第一存储器包括中间存储区;第二随机访问存储器,其可由所述客户机处理器访问但不可由所述 主机处理器访问;以及引导加载器,其包括主机部分和客户机部分,所述主机部分可加载到所述第一随机访问存储器中,并且所 述主机部分具有第一阶段,其将所述客户机处理器复位并将其 保持在复位状态下,并且将信息推入到所述第一随机访问存储器 中;和由所述客户机部分启动的第二阶段,其将待加载到所述第 二随机访问存储器中的信息加载到所述中间存储区中,并且向所 述客户机部分发送表示己对所述中间存储区进行了加载的第一消 息;并且所述客户机部分可加载到所述第一随机访问存储器中,并且 所述客户机部分启动操作系统,包括启动空闲进程并且最初阻断 对程序代码位于所述第二随机访问存储器中的所有进程的调度; 将加载到所述中间存储区中的信息复制到所述第二随机访问存储 器;并且向所述主机部分发送表示已复制了信息的第二消息。
12、 根据权利要求ll所述的系统,其中,通过所述第一阶段推入到 所述第一存储器中的信息包括所述引导加载器的所述客户机部分和所述 操作系统,并且所述第二阶段使得所述主机处理器与客户机处理器能够 交换消息。
13、 根据权利要求12所述的系统,其中,通过所述第一阶段推入到 所述第一存储器中的信息包括至少一个应用的至少一部分。
14、 根据权利要求11所述的系统,其中,所述客户机部分最初阻断 对除空闲进程以外的所有进程的调度。
15、 根据权利要求ll所述的系统,其中,所述空闲进程向所述主机 处理器发送关于所述中间存储区的地址和长度的信息。
16、 根据权利要求11所述的系统,待加载到所述第二随机访问存储 器中的信息包括表示所述信息待加载到所述第二随机访问存储器中的地 址和所述信息的长度的至少一个标签。
17、 根据权利要求ll所述的系统,其中,所述中间存储区被组织成 多个信息块,并且每个块都包括表示该块的长度和该块在所述第二随机 访问存储器中的地址的头部。
18、 根据权利要求ll所述的系统,其中,被推入到所述第一随机访 问存储器中的信息包括表示是否要将所述信息加载到所述第二随机访问 存储器中的至少一个标签。
19、 根据权利要求ll所述的系统,其中,待加载到所述第二随机访 问存储器中的信息是压縮信息和加密信息中的至少一个。
20、 一种计算机可读介质,所述计算机可读介质包含用于在包括主 处理器和从处理器的多处理器系统中向所述从处理器中加载信息的计算 机程序,其中,所述计算机程序执行以下步骤a) 将所述从处理器复位并将所述从处理器保持在复位状态下;b) 将信息推入到所述主处理器和所述从处理器都可访问的第一存储 器中;C)引导所述从处理器;d) 启动所述从处理器中的操作系统,包括阻断对程序代码位于所述 从处理器可访问但所述主处理器不可访问的第二存储器中的进程的调 度;e) 在所述第一存储器中预留中间存储区;f) 向所述主处理器发送关于所预留的中间存储区的位置和大小的信息;g) 基于所发送的信息,将待加载到所述第二存储器中的信息加载到 所述中间存储区中;h) 向所述从处理器发送表示己对所述中间存储区进行了加载和是完 成了加载处理还是要加载其它信息的第一消息;i) 将所述中间存储区中的信息复制到所述第二存储器中;以及j)向所述主处理器发送表示已复制了所述中间存储区中的信息的第 二消息。
21、 根据权利要求20所述的计算机可读介质,其中,所述计算机程 序还执行以下步骤如果存在其它待加载的信息,则重复步骤g到j,直 到不存在其它待加载的信息为止。
22、 根据权利要求20所述的计算机可读介质,其中,步骤g)包括 以下步骤在待加载到所述第二存储器中的信息之前,添加表示所述信 息待加载到所述第二存储器中的地址和所述信息的长度的至少一个标 签。
23、根据权利要求20所述的计算机可读介质,其中,步骤g)包括 以下步骤将待加载到所述第二存储器中的信息划分成多个块,并且将第 一块加载到所述中间存储区中。
全文摘要
本发明提供一种操作系统友好引导加载器。常规引导加载器会与多处理器系统的操作系统存在冲突。因此描述了一种操作系统友好引导加载器和方法,其可在任何如下系统中将操作系统与引导加载器集成起来,在所述系统中,主机处理器与客户机处理器具有通信机制,该通信机制需要操作系统来使其运转,并且所述客户机处理器具有两个存储器系统一个对于主机处理器和客户机处理器都是可见的,一个只对于客户机处理器是可见的。
文档编号G06F9/445GK101107592SQ200680002829
公开日2008年1月16日 申请日期2006年1月17日 优先权日2005年1月22日
发明者尼克拉·鲍尔, 彼得·奥林, 迈克尔·罗森伯格, 麦茨·斯文森 申请人:Lm爱立信电话有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1