CN103975305A - 多处理器系统中的处理器间协议 - Google Patents
多处理器系统中的处理器间协议 Download PDFInfo
- Publication number
- CN103975305A CN103975305A CN201280059732.7A CN201280059732A CN103975305A CN 103975305 A CN103975305 A CN 103975305A CN 201280059732 A CN201280059732 A CN 201280059732A CN 103975305 A CN103975305 A CN 103975305A
- Authority
- CN
- China
- Prior art keywords
- processor
- reflection
- header
- data
- primary processor
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/177—Initialisation or configuration control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4405—Initialisation of multiprocessor systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Multi Processors (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
- Facsimiles In General (AREA)
- Communication Control (AREA)
- Information Transfer Systems (AREA)
- Image Processing (AREA)
Abstract
在多处理器系统中,主处理器可存储用于二级处理器的可执行映像。通信协议有助于将所述可执行映像的映像标头和数据片段从所述主处理器传送到所述二级处理器。所述主处理器与二级处理器之间的消息指示成功地接收到所传送的数据、终止传送进程和确认传送进程。
Description
相关申请案的交叉参考
本申请案是2011年3月21日提交的古普塔(GUPTA)等人的第13/052,516号美国专利申请案的部分继续申请案,所述美国专利申请案主张2010年3月22日提交的马拉玛特(MALAMANT)等人的第61/316,369号美国临时专利申请案、2010年4月14日提交的古普塔等人的第61/324,035号美国临时专利申请案、2010年4月14日提交的古普塔等人的第61/324,122号美国临时专利申请案,和2010年4月19日提交的古普塔等人的第61/325,519号美国临时专利申请案的权益,这些专利申请案的全部揭示内容明确地以引用的方式并入本文中。
技术领域
以下描述大体上涉及多处理器系统,且更具体来说涉及如下多处理器系统,其中主处理器耦合到存储系统中的一或多个其它处理器(在本文中称为“二级”处理器)的可执行软件映像的非易失性存储器,所述一或多个其它处理器各自耦合到专用易失性存储器,其中以分段式格式(例如,使用直接分散加载程序)将可执行软件映像从主处理器有效地传达到二级处理器。
背景技术
处理器执行软件代码以执行操作。处理器可使用待执行以用于启动的特定软件代码(统称为启动代码)。在多处理器系统中,每一处理器可使用相应启动代码以用于启动。作为一实例,在包含应用处理器和调制解调器处理器的智能电话装置中,处理器中的每一者可使用相应启动代码以用于启动。
并入有多个处理器(例如,集成有单独的调制解调器处理器芯片的独立应用处理器芯片)的大量装置(例如,智能电话)中存在问题。快闪/非易失性存储器组件可用于处理器中的每一者,这是因为每一处理器均具有可执行映像和文件系统的非易失性存储器(例如,永久性存储装置)。举例来说,可将处理器的启动代码存储到处理器的相应非易失性存储器(例如,快闪存储器、只读存储器(ROM)等),且在加电之后,从其相应非易失性存储器加载启动代码软件以供处理器执行。因此,在这种类型的架构中,并不要求将可执行软件(例如,处理器的启动代码)从系统中的另一处理器加载到所述处理器。
然而,将专用非易失性存储器添加到每一处理器占据较多电路板空间,从而增加了电路板大小。一些设计可使用随机存取存储器(RAM)与快闪存储器的组合式芯片(其中RAM和快闪装置堆叠为一个封装以减少大小)来减少板大小。虽然多芯片封装解决方案确实在一定程度上减少了所需要的电路板覆盖面积,但这可能增加成本。
在一些多处理器系统中,可将软件从另一处理器加载到一个处理器。举例来说,假设多处理器系统中的第一处理器负责将用于系统中的一或多个其它处理器的启动代码存储到其非易失性存储器;其中在加电之后,不同于此类启动代码驻留于其它处理器的非易失性存储器中,第一处理器的任务为将相应启动代码加载到其它处理器。在这种类型的系统中,将软件(例如,启动映像)从第一处理器下载到其它处理器(例如,其它处理器的易失性存储器),且之后,接收处理器使用所下载映像进行启动。
常常,待加载的软件映像为二进制多段式映像。举例来说,软件映像可包含一标头后面跟着多个代码片段。当将软件映像从外部装置(例如,从另一处理器)加载到目标装置(例如,目标处理器)上时,可存在通过启动加载程序将二进制多段式映像传送到系统存储器中,且接着稍后传送到目标位置的中间步骤。
在将软件映像从第一“主”处理器加载到目标“二级”处理器上的系统中,执行此加载的一种方式为分配接收每一包的临时缓冲区,且每一包将具有相关联的包标头信息以及有效负载。在此状况下,有效负载将是实际映像数据。从临时缓冲区可对有效负载进行一些处理,且接着可将有效负载复制到最后目的地。临时缓冲区可位于系统存储器中,例如内部随机存取存储器(RAM)或双数据速率(DDR)存储器中。
因此,在使用中间缓冲区的情况下,将从主处理器下载到二级处理器的数据复制到中间缓冲区中。以此方式,缓冲区用于从主处理器接收映像数据的部分,且可将映像数据从缓冲区分散到二级处理器的存储器(例如,易失性存储器)中。
可在不同于实施二级处理器的芯片的芯片上实施主处理器和存储用于二级处理器的启动映像的其非易失性存储器。因此,为了将数据从主处理器的非易失性存储器传送到二级处理器(例如,二级处理器的易失性存储器),可利用基于包的通信,其中包标头包含于传达到二级处理器的每一包中。将包存储于中间缓冲区中,并对所接收的包执行一些处理,使得可将数据存储于其最后目的地中(例如,二级处理器的易失性存储器内)。
发明内容
提供一种多处理器系统中的两个处理器之间的通信方法。所述方法包含由二级处理器起始与主处理器的通信。所述方法还包含由所述二级处理器指令所述主处理器,以传送用于可执行软件映像的映像标头。所述可执行软件映像包含所述映像标头和数据片段。所述方法进一步包含由所述二级处理器接收所述映像标头和数据片段。所述方法又包含由所述二级处理器向所述主处理器指示成功地接收到所述映像标头和数据片段。所述方法进一步包含由所述二级处理器从所述主处理器接收终止所述可执行软件映像传送的指示。所述方法还包含由所述二级处理器向所述主处理器确认接收到终止传送的所述指示。
提供一种多处理器装置。所述装置包含用于由二级处理器起始与主处理器的通信的装置。所述装置还包含用于由所述二级处理器指令所述主处理器传送用于可执行软件映像的映像标头的装置。所述可执行软件映像包含所述映像标头和数据片段。所述装置进一步包含用于由所述二级处理器接收所述映像标头和数据片段的装置。所述装置又包含用于由所述二级处理器向所述主处理器指示成功地接收到所述映像标头和数据片段的装置。所述装置进一步包含用于由所述二级处理器从所述主处理器接收终止所述可执行软件映像传送的指示的装置。所述装置还包含用于由所述二级处理器向所述主处理器确认接收到终止传送的所述指示的装置。
提供一种计算机程序产品。所述计算机程序产品包含其上记录有非暂时性程序代码的非暂时性计算机可读媒体。所述非暂时性程序代码包含用以由二级处理器起始与主处理器的通信的程序代码。所述非暂时性程序代码进一步包含用以由所述二级处理器指令所述主处理器传送用于可执行软件映像的映像标头的程序代码。所述可执行软件映像包含映像标头和数据片段。所述非暂时性程序代码进一步包含用以由所述二级处理器接收所述映像标头和数据片段的程序代码。所述非暂时性程序代码又包含用以由所述二级处理器向所述主处理器指示成功地接收到所述映像标头和至少一个数据片段的程序代码。所述非暂时性程序代码进一步包含用以由所述二级处理器从所述主处理器接收终止所述可执行软件映像传送的指示的程序代码。所述非暂时性程序代码还包含用以由所述二级处理器向所述主处理器确认接收到终止传送的所述指示的程序代码。
提供一种多处理器系统中的两个处理器之间的通信方法。所述方法包含由主处理器接收传送用于可执行软件映像的映像标头的指令。所述可执行软件映像包含所述映像标头和数据片段。所述方法还包含由所述主处理器将所述映像标头和数据片段发送到二级处理器。所述方法进一步包含由所述主处理器从所述二级处理器接收成功地接收到所述映像标头和数据片段的指示。所述方法又进一步包含由所述主处理器发送终止所述可执行映像传送的指示。所述方法还包含由所述主处理器从所述二级处理器接收对接收到所述终止传送指示的确认。
提供一种多处理器装置。所述装置包含用于由主处理器接收传送用于可执行软件映像的映像标头的指令的装置。所述可执行软件映像包含所述映像标头和数据片段。所述装置还包含用于由所述主处理器将所述映像标头和数据片段发送到二级处理器的装置。所述方法进一步包含用于由所述主处理器从所述二级处理器接收成功地接收到所述映像标头和数据片段的指示的装置。所述装置又进一步包含用于由所述主处理器发送终止所述可执行映像传送的指示的装置。所述装置还包含用于由所述主处理器从所述二级处理器接收对接收到所述终止传送指示的确认的装置。
提供一种计算机程序产品。所述计算机程序产品包含其上记录有非暂时性程序代码的非暂时性计算机可读媒体。所述非暂时性程序代码包含用以由主处理器接收传送用于可执行软件映像的映像标头的指令的程序代码,所述可执行软件映像包括所述映像标头和数据片段。所述非暂时性程序代码还包含用以由所述主处理器将所述映像标头和数据片段发送到二级处理器的程序代码。所述非暂时性程序代码进一步包含用以由所述主处理器从所述二级处理器接收成功地接收到所述映像标头和至少一个数据片段的指示的程序代码。所述非暂时性程序代码又进一步包含用以由所述主处理器发送终止所述可执行映像传送的指示的程序代码。所述非暂时性程序代码又进一步包含用以由所述主处理器从所述二级处理器接收对接收到所述终止传送指示的确认的程序代码。
附图说明
为了更完整地理解本发明教示,现结合随附图式参考以下描述。
图1为其内可实施本发明的方面的示范性装置的说明。
图2为其内可实施本发明的方面的示范性装置的说明。
图3为根据本发明的一个方面的用于将可执行映像从主处理器加载到二级处理器的示范性加载程序的操作流程的说明。
图4为根据本发明的一个方面的两个处理器之间的包流的说明。
图5为展示可有利地利用本发明的方面的示范性无线通信系统的框图。
图6为说明根据本发明的一个方面的关于可执行软件映像传送的通信的框图。
图7为说明根据本发明的一个方面的关于可执行软件映像传送的通信的框图。
具体实施方式
词语“示范性”在本文中用于意味“充当实例、个例或说明”。不必将本文中描述为“示范性”的任何方面解释为与其它方面相比为优选或有利的。
本文中所揭示的某些方面涉及多处理器系统,其中一个主处理器连接到存储系统中的一或多个其它处理器(在本文中称为“二级”处理器)的可执行映像的非易失性存储器。在此多处理器系统中,二级处理器中的每一者可连接到用于存储可执行映像、运行时间数据和(任选地)文件系统镜像的专用易失性存储器。
常常以分段式格式存储可执行映像,其中可将每一片段加载到不同存储器区域中。可执行片段的目标存储器位置可相对于彼此邻接或可并不邻接。多段式映像格式的一个实例为可执行和链接格式(ELF),所述格式允许可执行映像分裂成多个片段,且可将这些片段中的每一者加载到不同系统存储器位置。
在一个示范性方面中,揭示用于将分段式映像从主处理器的非易失性存储器加载到二级处理器的易失性存储器的直接分散加载技术。如下文进一步所论述,直接分散加载技术避免使用临时缓冲区。举例来说,在一个方面中,将原始映像数据从主处理器加载到二级处理器,而非利用经由各自包含相应标头的包传达映像的基于包的通信。在另一方面中,使用包含用于确定数据的目标位置信息的信息的标头。
具有集中式非易失性存储器的示范性多处理器架构——具有用于文件系统的减少的局部非易失性存储器
图1说明第一多处理器架构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具有用于其文件系统128存储的专用二级(减小或最小的)非易失性存储器114(例如,NOR快闪)。相比于能够存储运行时间调制解调器可执行映像120和文件系统128两者的快闪装置,此二级(减小或最小的)非易失性存储器114较小且成本较低。
在系统加电之后,调制解调器处理器110从硬件启动ROM126(小型只读芯片上存储器)执行其主启动加载程序(PBL)。调制解调器PBL可适于从应用处理器104下载调制解调器可执行文件120。也就是说,由调制解调器处理器110向应用处理器104请求调制解调器可执行映像120(最初存储于主非易失性存储器106中)。应用处理器104检索调制解调器可执行映像120,并经由处理器间通信总线134(例如,处理器间通信总线)将其提供到调制解调器处理器110。调制解调器处理器110直接将调制解调器可执行映像132存储到调制解调器处理器RAM(随机存取存储器)112中的最后目的地,而无需将数据复制到调制解调器处理器RAM112中的临时缓冲区。处理器间通信总线134可为(例如)HSIC总线(基于USB的高速芯片间)、HSI总线(MIPI高速同步接口)、SDIO总线(安全数字I/O接口)、UART总线(通用异步接收器/发射器)、SPI总线(串行外围接口)、12C总线(集成电路间),或适于调制解调器处理器110和应用处理器104两者上可用的芯片间通信的任何其它硬件接口。
一旦将调制解调器可执行映像120下载到调制解调器处理器RAM112中并对其进行认证,就将所述调制解调器可执行映像维持为调制解调器可执行映像132。另外,调制解调器处理器易失性存储器112还可存储调制解调器运行时间数据130。接着,调制解调器启动ROM代码126可跳转到所述调制解调器可执行映像132中,并开始执行来自调制解调器处理器RAM112的主要调制解调器程序。可使用附接到调制解调器处理器110的二级(减小或最小的)非易失性存储器114将任何持久性(非易失性)数据(例如,射频(RF)校准和系统参数)存储于调制解调器文件系统128上。
具有集中式非易失性存储器的示范性多处理器架构——没有用于文件系统的局部非易失性存储器
图2说明第二多处理器架构202的框图,其中主处理器(应用处理器204)代管主(较大)非易失性存储器206(例如,NAND快闪存储器)。主非易失性存储器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表示写入操作已完成。如果同步操作失败,那么可使用调制解调器文件系统的目前版本,这意味着调制解调器处理器210可继续使用当前驻留于其自身易失性存储器中的映像进行执行,而非从应用处理器204重新加载映像。同步可周期性地发生(例如,每90秒),或在调制解调器进行到其文件系统的写入操作之后的一定时间之后发生。为防止因为例如突然性移除电力等情况造成破坏,可存储调制解调器文件系统220的两个复本。
调制解调器处理器210还可向应用处理器的非易失性存储器206起始文件系统镜像228的“清空”操作。出于若干原因可发生此情况,包含电话关机以及将确认消息发送到网络以指示接受并存储传入的SMS消息。
反映调制解调器文件系统的当前状态的调制解调器处理器易失性存储器212服务于对调制解调器处理器210的文件系统读取操作。因为读取操作比写入操作频繁,且写入操作倾向于在活动“突发”时发生,所以可减少总系统负载和功率消耗。
应用处理器204、调制解调器处理器210和启动加载程序采取特定措施,以确保在所有时间非易失性存储器206中都有至少一个完整文件系统映像可供使用。此情况提供对电力丢失或突然性复位情境的抗扰性。
本文中所揭示的概念的应用并不限于上文所展示的示范性系统,而同样可结合各种其它多处理器系统进行利用。
零复本输送流
本发明的方面提供用于将可执行软件映像从主处理器的非易失性存储器有效地加载到二级处理器的易失性存储器的技术。如上文所提及,常规加载进程要求缓冲二进制多段式映像(例如,传送到系统存储器中)且接着稍后将其分散到目标位置中(例如,通过启动加载程序)的中间步骤。本发明的方面提供取消常规加载进程中所要求的缓冲中间步骤的技术。因此,本发明的方面避免了额外的存储器复制操作,从而改善了性能(例如,减少了启动多处理器系统中的二级处理器所要求的时间)。
如下文进一步所论述,本发明的一个示范性方面利用用于将可执行软件映像从主处理器的非易失性存储器加载到二级处理器的易失性存储器的直接分散加载技术。本发明的某些方面还能实现同时进行映像传送与传送后数据处理(例如,认证),此情况可进一步改善效率,如下文进一步所论述。
在一个方面中,主机主处理器并不处理或提取来自实际映像数据的任何信息——其仅将映像数据作为“原始”数据发送到目标,而不将任何包标头附接到包。因为目标二级处理器起始数据传送请求,所以其准确地知道要接收多少数据。此情况使得主机能够发送没有包标头的数据,且目标能够直接接收并存储数据。在所述方面中,目标视需要向主机请求数据。其请求的第一数据项为用于给定映像传送的映像标头。一旦目标已处理映像标头,其就知道映像中的每一数据片段的位置和大小。映像标头还指定映像在目标存储器中的目的地地址。在具有此信息的情况下,目标可针对每一片段向主机请求数据,并将数据直接传送到目标存储器中的适当位置。用于应用处理器上的处理器间通信总线的硬件控制器可添加其自身的低级协议标头,将由调制解调器处理器处理并剥除所述标头。这些低级标头对于运行于这两个处理器上的软件来说可以是透明的。
在本发明的一个方面中,将加载进程划分成两个阶段,如图3中所展示的示范性流程中所说明。图3展示主处理器301(其可为具有其非易失性存储器106或206的图1或图2的应用处理器104或204)和二级处理器302(其可为具有其易失性存储器112或212的图1或图2的调制解调器处理器110或210)的框图。在图3中,将用于二级处理器302的示范性软件映像存储到主处理器301的非易失性存储器。如此实例中所展示,示范性软件映像303为包含映像标头部分和多个数据片段(在此实例中展示为数据片段1到5)的多片段映像。主处理器301和二级处理器302可位于不同物理硅芯片上(即,不同芯片封装上),或可位于相同封装上。
在图3的示范性加载进程的第一阶段中,将映像标头信息传送到二级处理器302。主处理器301从映像标头开始从主处理器的非易失性存储器306检索数据映像片段。主处理器301解析映像标头,以将个别映像片段从主处理器的非易失性存储器306加载到主处理器的系统存储器307。映像标头包含用于识别最终将调制解调器映像可执行数据放置于二级处理器的系统存储器305中的哪个位置的信息。由二级处理器302使用标头信息对分散加载程序/直接存储器存取控制器304进行编程以在接收实际可执行数据时接收地址。接着,将数据片段从系统存储器307发送到主硬件输送机构308。接着,将片段从主处理器301的硬件输送机构308经由处理器间通信总线310(例如,HS-USB缆线)发送到二级处理器302的硬件输送机构309。所传送的第一片段可为映像标头,其含有由二级处理器所使用以将数据片段定位于二级处理器的系统存储器305中的目标位置中的信息。映像标头可包含用于确定数据的目标位置信息的信息。
在一个方面中,目标位置并非预定的,而是作为分散加载进程的部分由在二级处理器中执行的软件所确定。来自映像标头的信息可用于确定目标位置。在此方面中,二级处理器的启动加载程序首先向主处理器请求映像标头(主处理器CPU根本不处理映像标头)。二级处理器通过查看映像标头(除RAM地址/大小之外,标头还包含每一片段相对于映像文件的开始在非易失性存储器中的相对位置)知道数据片段如何布置于非易失性存储器中。由二级处理器驱动对数据片段的后续请求。
在另一方面中,主处理器可通过如下方式指示将片段放置于二级处理器的易失性存储器中的哪个位置:解析映像标头,且接着对二级处理器的控制器进行编程,以将接下来的数据片段放置于映像标头中所规定的指定地址中。此情况可涉及额外硬件,以允许二级处理器的控制器的此外部控制。
映像标头大体上包含定义片段中的每一者应加载于二级处理器的系统存储器305中的哪个位置的片段开始地址和大小列表。二级处理器302包含一个包含分散加载程序控制器304的硬件输送机构309(例如,USB控制器)。在加载进程的第二阶段中,启动加载程序对处理器间连接控制器的引擎进行设计,以接收传入的数据并根据第一阶段中所接收的标头信息将传入的数据分散加载到二级处理器的对应目标存储器区域305中。
在USB或HSIC总线的情况下,可将映像的每一片段作为处理器间通信总线310上的单一USB传送予以传送。知道片段大小和目的地地址允许软件对二级处理器302的分散加载程序控制器304进行编程,以用于在二级处理器302的最少的软件干预的情况下,将整个片段直接传送到目标存储器位置(系统存储器305内)中。当片段显著较大(例如,超过1兆字节(MB))时,此情况可使得USB/HSIC总线上的性能增加。
如图3中所展示,数据片段未必放置于二级处理器的系统存储器305内的连续位置中。实际上,片段可散布于存储器的不同位置中。图3的示范性加载进程使得能够将二级处理器的软件复本(即,映像303)从主处理器301直接发送到二级处理器的系统存储器305上的最后片段目的地。另外,可仅存在所传送的单一数据片段。
将映像标头从主处理器301加载到二级处理器302的分散加载程序控制器304。所述映像标头提供关于数据片段位于系统存储器305中的哪个位置的信息。因此,分散加载程序控制器304直接将映像片段传送到二级处理器的系统存储器305中的其相应目标位置。也就是说,一旦二级处理器的CPU处理其存储器305中的映像标头,并对分散加载程序控制器304进行编程,分散加载程序控制器304就准确地知道映像数据片段去往二级处理器的系统存储器305内的哪个位置,且因此,接着相应地对硬件分散加载程序控制器304进行编程,以将数据片段直接传送到其目标目的地中。在图3的实例中,分散加载程序控制器304接收数据片段,并将其分散到系统存储器305中的不同位置。在一个方面中,在无需将整个可执行软件映像存储于二级处理器的硬件缓冲区中的情况下,将可执行软件映像加载到二级处理器的系统存储器中。在一个方面中,待传送的映像数据片段位于存储器306中的非邻接位置中。在另一方面中,仅传送单一映像数据片段。在另一方面中,传送多个映像数据片段。
因此,在上文的方面中,二级处理器中并未发生额外的存储器复制操作。因此,为支持更有效的直接加载进程,避免利用用于整个映像的临时缓冲区和包标头处理等的常规技术。因此,图3的示范性加载进程并不要求将软件映像从主处理器加载到二级处理器所传统地要求的中间缓冲区操作。图3的示范性加载进程允许将映像片段从硬件直接分散加载到系统存储器的其相应目标目的地,而非从保存整个映像的临时缓冲区进行分散加载。一旦处理映像标头,直接将可执行映像分散加载到目标存储器,从而避免进一步的CPU参与。
常规地,当涉及外部接口(例如,如在将映像数据从主处理器传达到二级处理器时所使用)时,要求某一机构以输送数据,使得两个处理器都知道实际数据的内容和读取数据的方式。常常地,将待经由外部接口传送的数据包化,其中每一包包含描述包内含有的数据的标头。举例来说,在经由网络传送数据的传输控制协议/因特网协议(TCP/IP)系统中,出现与处理包标头相关联的开销。
根据本发明的某些方面(例如,如图3的实例中),输送原始映像数据。举例来说,图3的示范性加载进程根据与整个映像相关联的标头来确定关于数据的所要信息,而非输送具有包标头的映像数据的每一片段。因此,可初始地传送映像标头,且用于确定将数据存储于系统存储器305的方式的所有处理可在(基于映像标头)传送片段之前发生,且接着将片段作为原始数据传送,而非在传送片段时,要求处理用于每一片段的包标头。因此,在图3的实例中,将原始映像数据从主处理器传达到二级处理器,且接着由可剥离任何USB包标头等的硬件对其进行处理。在此示范性方面中,未对实际数据片段进行CPU处理,从而改善加载进程的效率。
当必须将多个映像加载到同一二级处理器的易失性存储器中时,根据本发明的一个方面,可将图3的上文序列重复与所传送的映像数目一样多的次数。在某些方面中,在主处理器301内,从非易失性存储器到系统存储器的传送可与将数据从主处理器发送到二级处理器并行地发生。
在一个方面中,在完成每一片段传送之后,二级处理器302对分散加载程序控制器304进行编程以传送下一片段,并开始认证刚传送的片段。此情况使得分散加载程序控制器304能够在二级处理器302执行认证时传送数据。此处的认证大体上指代检查所接收数据的完整性和真实性。认证机制的细节不在本发明的范围内,且如给定实施方案中可能需要的,可利用任何合适的认证机制(包含所属领域中众所周知的那些机制)。上文所提及的并行性也可适用于在给定实施方案中可能需要由二级处理器302执行的其它传送后处理。
一传送和认证最后映像的最后片段,二级处理器302就可继续启动进程并执行所传送的映像。
处理器间通信协议
还揭示处理器间通信协议。在本发明的一个方面中,提供从二级处理器所驱动的示范性协议。举例来说,二级处理器可从主处理器起始其需要的任何数据传送。换句话说,二级处理器向主处理器指令二级处理器想要接收的数据内容。因此,在某些方面中,主处理器可具有驻留于某处(例如,主处理器所耦合的非易失性存储器上)的可执行软件映像(文件),且一识别符可与所述文件相关联。二级处理器(或“目标”)可将所述识别符发送到主处理器,并指令主处理器发送驻留于文件内的指定偏移处的对应数据。作为响应,主处理器可将所述原始数据发送到二级处理器。因此,并不要求传回数据中存在包标头,而实际上直接将传回数据从主处理器发送到二级处理器,二级处理器将在接收到数据之后即刻将其推送到二级处理器的系统存储器中的适当位置。
以下内容描述处理器间通信协议的示范性实施例的进一步细节。虽然描述下文示范性实施例的特定细节,但应理解本文中针对处理器间通信协议所描述的概念并不限于下文所描述的特定细节。
介绍
此以下描述提供关于可用于从存储器传送数据/将数据传送到存储器的示范性处理器间通信协议的信息。所述描述包含关于协议的包结构、包流和示范性使用的信息。下文所描述的示范性协议的特定实施方案并不提供用于认证/验证使用协议所发送的数据的机制。此类机制超出本文中所提供的示范性协议描述的范围,但如给定应用可能需要的,可在传送数据时,结合此协议实施任何合适的认证和/或验证机构。
示范性协议的概述
下文所描述的处理器间通信协议的示范性方面主要经设计以用于将软件映像从主机(例如,“主处理器”)传送到目标(例如,“二级处理器”)。协议提供用于请求经由任何物理链路传送数据的简单机制。
所述协议的此示范性方面支持两种基本包类型:命令包和数据包。在主机与目标之间发送命令包以设置数据包的传送。
目标驱动的协议。所述协议的此示范性方面通过减少在主机与目标之间所发送的命令包数目而减少数据传送开销。通过使所述协议为目标驱动且通过使目标执行数据处理而实现此情况。主机等待数据传送请求,所述请求含有以下信息:
·用以传送的数据映像
·映像中开始读取的偏移
·数据传送长度
主机并不处理或提取来自实际映像数据的任何信息——其将映像数据作为“原始”数据发送到目标,而不将任何包标头附接到包。因为目标起始数据传送请求,所以其准确地知道要接收多少数据。此情况使得主机能够发送没有包标头的数据,且目标能够直接接收并存储数据。
目标可视需要向主机请求数据。其在所述协议的此示范性方面中请求的第一数据项为用于给定软件映像传送的映像标头。一旦目标已处理映像标头,其便知道映像中的每一数据片段的位置和大小。映像标头还指定映像在目标存储器中的目的地地址。在具有此信息的情况下,目标可针对每一片段向主机请求数据,并将数据直接传送到目标存储器中的适当位置。
包处理。所述协议的此示范性方面通过使用物理输送层来提供可靠的数据传送而减少包处理。并未在协议层级处将成帧、HDLC(高级数据链路控制)编码或CRC(循环冗余检查)应用于包。
每一命令包类型具有可含有命令ID和包长度的经定义结构。使用此信息,可通过比较所接收的命令包的长度与以下两值中的任一者而验证每一命令包的长度:
·给定命令ID的预期包长度
·包自身中所含有的长度字段
可通过将CRC字段添加到每一包的末端而容易地扩展所述协议的此示范性方面,以支持命令包验证。还可使用各种认证方法来验证数据包的数据完整性;然而,此情况超出所述协议的此示范性方面的本描述的范围。
已确以通信。根据所述协议的此示范性方面,确认主机与目标之间的通信。用从主机发送回到目标的命令或数据包确认从目标发送到主机的命令包。类似地,用从目标到主机的命令或数据包确认从主机发送到目标的命令包。
尽管预期主机与目标之间的链路是可靠的,但如果在将命令包从主机传输到目标期间发生错误,且结果目标接收到不正确的包,那么目标将把错误响应发送到主机。
可在主机和目标两者上实施计时器机构,以在传输失败的情况下支持包的重新传输。然而,此类机构的实施方案超出所述协议的此示范性方面的本描述的范围——其仅指定当在目标侧上接收到非预期或不正确的包时会发生的情况。
扩展性。所述协议的此示范性方面定义命令结构和包流的固定集合。然而,可容易地扩展所述集合,以支持额外的命令结构和状态转变(如下文进一步所描述)。
接口
概述。所述协议的此示范性方面定义两种类型的包:
·命令包
·数据包
下文根据所述协议的此示范性方面展示这些包的结构:
命令包
命令ID | 包长度 | 任选字段 | 任选字段 |
数据包
原始数据(任意数目个字节) |
命令包含有命令ID和包长度。取决于命令,包可含有额外的命令专用字段。命令包结构使得对协议的未来修正能够容易地将字段添加到包类型的末端,同时保持与先前协议版本的包结构的相容性。
命令。下文的表1中列举用于所述协议的此示范性方面的命令包的命令。
表1——命令
问候包。当目标发送问候包,其使用下文表2中所展示的格式。
表2——问候包
问候包为目标发送到主机的第一包。如果主机接收任何其它包,那么其将向目标发送复位命令。
当主机接收到有效的问候包时,其首先证实运行于目标上的协议与运行于主机上的协议兼容。如果协议并不匹配,那么主机将向目标发送复位命令。
目标还发送其支持的最大命令包长度——主机使用此信息,以避免发送比目标在接收命令缓冲区中可支持的字节多的字节。
问候响应包。当主机发送问候响应包时,其使用下文表3中所展示的格式。
表3——问候响应包
一旦主机验证运行于目标上的协议,其就将以下信息发送到目标:
·其运行的协议版本
·其支持的最小协议版本
如果主机侧上并未发生错误,那么主机将包状态字段设定为“成功”。一旦目标接收到此包,其可进行数据传送请求。
读取数据包。当目标发送读取数据包时,其使用下文表4中所展示的格式。
表4——读取数据包
为起始映像传送,目标用对应于其想要接收的映像的映像ID填充此包。目标还发送映像文件中的偏移,和其想要从映像读取的数据长度(以字节为单位)。
当映像数据将从主机传送到目标时,此包充当通用数据传送包。读取数据包允许映像从主机传送到目标的方式具有灵活性。因为目标控制传送的数据内容,所以其可确定传送了映像的哪些部分以及以何顺序进行传送。
主机可能并不知道关于映像结构的任何内容;其仅打开文件,并基于包中所指定的参数开始将数据传送到目标。此情况给予目标对如何传送并处理映像的控制权。
当主机接收到此包时,主机预期用数据包进行响应。数据包必须仅含有映像数据,且必须为读取数据包中所指定的长度。
如果主机在读取数据包中接收到以下中的任一者,那么可发生若干错误状况:
·无效或不支持的映像ID
·无效的数据偏移
·无效的数据长度
如果上述字段中的任一者是无效的,或如果主机上发生任何其它错误,那么主机可发送长度不匹配目标所预期长度的数据包。所产生的错误可导致目标发送状态字段中有错误代码的结束映像传送包(参见表5中的示范性包结构)。此事务使得目标和主机两者都能够进入错误处理状态。
可由状态机实施协议的此示范性方面,其中发生的任何错误都导致主机发送复位包(参见下文“示范性协议实施方案”的进一步描述)。协议的某些实施方案可提供其中可使用主机错误和主机错误响应包处理某些错误的实施方案。
结束映像传送包。当目标发送结束映像传送包时,其使用下文表5中所展示的格式。
表5——结束映像传送包
如果成功地完成映像传送,那么目标向主机发送具有“成功”状态的结束映像传送包。在此点处,目标等待主机发送完成包。如果映像数据传送或处理期间发生任何错误,那么将状态设定成对应错误代码,且目标等待不同的命令包。
可由状态机实施协议的此示范性方面,其中目标假设在结束映像传送包中发送错误之后,主机始终将发送复位包(参见下文“示范性协议实施方案”的进一步描述)。响应于结束映像传送错误包,协议允许从主机将其它命令包发送到目标。
完成包。当主机发送完成包时,其使用下文表6中所展示的格式。
字段 | 长度(字节) | 描述 | 值版本1.0 |
命令 | 4 | 命令标识符代码 | 主机将此字段设定为0x00000005 |
长度 | 4 | 包长度(以字节为单位) | 主机将此字段设定为0x00000008 |
表6——完成包
如果主机接收到具有“成功”状态的结束映像传送包,那么主机前进到发送完成包,以向目标指示其可退出协议并继续执行。如果目标希望从主机传送另一映像,那么其通过开始另一问候包而重新起始协议。
完成响应包。当目标发送完成响应包时,其使用下文表7中所展示的格式。
表7——完成响应包
如果目标接收到完成包,那么其用含有映像传送状态的完成响应包进行响应:
·如果已传送所有映像,那么目标发送“完成”状态以使得主机能够退出协议。
·如果并未传送所有映像,那么目标发送“待决”状态。目标将假设主机将继续执行协议,并等待另一问候包到达。
复位包。当主机发送复位包时,其使用下文表8中所展示的格式。
字段 | 长度(字节) | 描述 | 值版本1.0 |
命令 | 4 | 命令标识符代码 | 主机将此字段设定为0x00000007 |
长度 | 4 | 包长度(以字节为单位) | 主机将此字段设定为0x00000008 |
表8——复位包
当主机想要复位目标时,其发送复位包。如果目标处于复位请求有效的状态,那么目标服务复位请求。如果目标接收到无效的复位请求,那么目标将在结束映像传送包中发送错误。
复位响应包。当目标发送复位响应包时,其使用下文表9中所展示的格式。
字段 | 长度(字节) | 描述 | 值版本1.0 |
命令 | 4 | 命令标识符代码 | 目标将此字段设定为0x00000008 |
长度 | 4 | 包长度(以字节为单位) | 目标将此字段设定为0x00000008 |
表9——复位响应包
如果目标接收到有效的复位请求,那么其刚好在其进行复位之前发送复位响应包。此响应的目的在于目标向主机确认目标接收到复位请求。如果主机并未从目标接收到复位响应命令(或接收到不同命令),那么其可尝试重新发送请求。
主机错误包。如果主机上发生任何错误,那么协议的方面可使用此包以允许主机将错误代码发送到目标。
主机错误响应包。协议的方面可使用此包以允许目标确认主机错误包。此包可为主机提供关于目标处理主机错误的方式的信息。
存储器转储包。协议的方面可使用此包,以起始对目标的系统存储器的存储器转储。此包可指示主机目标准备好接收存储器读取请求以传送系统存储器内容。
存储器读取包。协议的方面可使用此包,以允许主机发布对目标的存储器读取请求。此包可含有存储器传送的物理地址和大小。目标可用仅含有主机所请求的存储器内容的数据包进行响应。如果目标侧上发生任何错误,那么目标可发送长度并不匹配存储器传送的所请求的大小的数据包。此情况将导致主机侧上发生错误,从而允许主机作出适当响应。
状态代码。下文的表10列举由协议的此示范性方面所支持的状态和错误代码。
表10——状态和错误代码
操作
概述。下文的描述涵盖以下论题:
·协议的此示范性方面可用于将映像从主机传送到目标的方式
·实施协议并说明处理映像传送期间发生的错误的方式的实例状态机
·系统可使用协议以并行化映像传送请求的方式
成功的映像传送序列。图4展示成功的映像传送序列的包流。下文描述包流序列。在时间402处,将问候包从目标450发送到主机400以起始协议。在接收到问候包并验证运行于目标450上的协议版本之后,在时间404处,主机400发送具有“成功”状态的问候响应包。
一旦目标450接收到问候响应,在时间406处,目标450就通过发送读取数据包而起始映像传送请求。每一读取数据包指定目标450希望接收哪个映像,和传送映像的何部分。在正常操作期间,在时间406处,目标450首先请求指定映像的其余内容的映像标头信息(即,映像大小和系统存储器中待传送映像数据的位置)。当发送对映像标头的此请求时(其作为读取数据请求发送),目标450知道待传送的映像的格式。主机400可能并不知道关于映像格式的任何内容,从而允许主机400如由目标450所请求的仅从映像读取并传送数据。在请求之后,在时间408处,将映像标头从主机400发送到目标450。
如果映像为并无任何数据分段的独立二进制映像(即,当存储以及传送到目标450系统存储器时,数据全部邻接),那么目标450可请求在一次传送中发送全部映像数据。如果映像数据为分段式的,且要求将数据片段分散到非邻接的系统存储器位置,那么目标450可发布多个读取数据请求(例如,在时间406、410、414和418处),以使得能够将每一数据片段直接传送到相应目的地地址(例如,在时间412、416和420处)。此分散信息驻留在映像标头中,且由目标450在发布读取数据请求之前进行解析。
在接收到读取数据请求之后,主机400即刻解析映像ID、数据偏移和数据长度,以便从对应映像文件传送数据。主机400发送所请求的数据而不发送任何包标头。目标450直接将此数据传送到目的地地址,而不在系统存储器中对所述数据进行任何软件处理或临时缓冲。通过将映像标头传送到目标450和通过将用于数据的接收缓冲区设定为系统存储器中的目的地地址能使此情况成为可能。
一旦目标450成功地接收到映像的所有片段,在时间422处,目标450就发送具有对应映像的映像ID和“成功”状态的结束映像传送(END_IMAGE_TX)包。此情况使得主机400能够停止读取并关闭映像文件。在接收到成功的结束映像传送之后,在时间424处,主机400发送完成包以允许目标450退出协议。一旦目标450接收到完成包,在时间426处,目标450就将完成响应包发送到主机400。在此包内,目标450指示其是否预期传送另一映像。如果待将另一映像传送到目标450,那么主机400可继续运行所述协议。
示范性协议实施方案。可使用用于目标和主机两者的状态机实施所述协议的此示范性方面。图5、6和7中展示这些状态机的实例。
目标状态机。图5和6展示实施图4中所展示的包流的目标侧的状态机。此状态机说明可传送两种类型的软件映像格式的实际映像数据的方式:
·独立二进制
·可执行和链接格式(ELF)
独立二进制格式使用描述映像数据的大小和目的地地址的简单映像标头。ELF格式允许将数据分段并分散到系统存储器的非邻接区段中。
以下列表描述图5和6的状态机中的每一状态,和当在这些状态中时目标对进入包作出响应的方式:
WAIT_HELLO_RESP:在目标发送问候包之后,目标等待,直到从主机接收到问候响应包为止。如果接收到无效的包或不正确的包,那么目标将具有对应错误代码的结束映像传送包发送到主机。如果接收到复位包,那么目标发送复位响应且接着进行复位。
DATA_BINARY:目标已接收到独立二进制映像标头。如果映像标头存在任何错误,那么目标发送具有对应错误代码的结束映像传送包。如果接收到有效的映像标头,那么目标发送单一读取数据请求以传送映像数据。一旦接收到映像数据,如果数据有效,那么目标发送具有“成功”状态的结束映像传送。如果映像传送期间发生任何错误,那么目标发送具有对应错误代码的结束映像传送。
DATA_ELF_HDR:目标已接收到用于ELF映像的ELF标头。如果ELF标头存在任何错误,那么目标发送具有对应错误代码的结束映像传送包。如果接收到有效的ELF标头,那么目标将单一读取数据请求发送到来自ELF映像的程序标头。将ELF映像中的程序标头的大小和位置嵌入于ELF标头中。
DATA_ELF_PROG_HDR:目标已接收到用于ELF映像的ELF程序标头。如果程序标头存在任何错误,那么目标发送具有对应错误代码的结束映像传送包。如果接收到有效的程序标头,那么目标处理所述标头以确定散列表片段的位置。通过将散列函数应用于每一数据片段,并将散列值存储于散列表中,可使用散列表来验证每一数据片段的完整性。在加载每一ELF数据片段之后,可将散列函数应用于每一片段,并将散列值与散列表中所存储的那个值进行比较。此处并不描述特定的散列算法和认证例程,这是由于其超出此协议的范围。
DATA_ELF_SEGMENTS:一旦根据程序标头确定了每一数据片段的位置和大小,目标就反复地发送读取数据请求,直到传送了每一数据片段为止。一旦接收到所有ELF片段,目标就发送具有“成功”状态的结束映像传送。
WAIT_DONE:一旦完成单一映像传送,目标就等待发送完成包。如果接收到无效或任何其它包,那么目标就发送具有对应错误代码的结束映像传送包。如果接收到有效的完成包,那么目标将完成响应发送到主机,其中基于是否传送另一映像,将映像传送状态字段设定成“完成”或“待决”。
WAIT_RESET:每次目标上发生错误,目标就预期主机发送复位命令。如果目标接收到复位命令,那么其将复位响应发送到主机且接着进行复位。如果接收到无效或任何其它命令,那么目标发送具有对应错误代码的结束映像传送包。
主机侧状态机。可利用主机侧状态机,以实施图4中所展示的包流的主机侧。以下列表描述所述状态机的操作和当在这些状态中时主机对传入包作出响应的方式:
WAIT_HELLO:主机等待目标起始协议。一旦接收到问候并验证协议版本,主机就发送具有“成功”状态的问候响应。如果主机接收到无效包(或任何其它包),那么其将复位包发送到目标。如果目标协议版本并不与主机兼容,那么主机也将发送复位包。
WAIT_COMMAND:如果主机接收到读取数据包,那么主机从数据包中的对应映像读取并传送数据。如果主机接收到具有“成功”状态的结束映像传送包,那么其发送完成包。如果主机接收到无效命令(或任何其它命令),那么其发送复位包。如果主机接收到具有错误代码的结束映像传送包,那么其也将发送复位包。
WAIT_DONE_RESP:主机等待完成响应。如果并未传送所有映像,那么主机等待另一问候包。如果已传送所有映像,那么主机退出协议。如果主机接收到无效命令(或任何其它命令),那么其发送复位包。
WAIT_RESET_RESP:在主机发送复位包之后,其等待目标发送复位响应。如果主机接收到复位响应,那么其退出协议。如果主机接收到无效命令(或任何其它命令),那么其发送另一复位包。
错误处理。在“示范性协议实施方案”之后的上文描述描述可使用协议的此示范性方面报告并处理错误的方式。常常实施超时和包的重新传输以处理可能的传输或接收错误。可利用用于实施此类策略的技术,但对那些特定技术的进一步描述超出协议的此示范性方面的此描述的范围。
并行映像传送。以下描述可经由使用多线程环境并行地传送多个映像的方式。
单主机,多目标。如果主机可在硬件输送层处区别目标,且可将协议的包路由到对应目标,那么主机可执行用于单独线程上的每一目标的状态机:
·每一目标运行其自身的状态机以传送其希望传送的映像
·主机运行线程管理器以发送/接收协议的包并将其路由到对应状态机
因为读取数据请求指定映像ID、数据偏移和数据长度,所以主机从对应映像文件进行读取,并将数据发送到请求目标。
多主机,单目标。如果目标希望从多个主机传送映像,那么可将来自每一主机的连接囊封于硬件输送层中。在进入协议时,目标可指定其希望使用哪个硬件来传送给定映像。目标可针对每一映像选择进入和退出协议,从而允许其选择用于每一映像的硬件输送层(通过使用分派表将对应软件驱动程序中的主机连接有效地抽象化)。每一主机可接着运行单独的状态机。
单主机,单目标,并行映像。如果目标希望从主机并行地传送映像,那么可在目标上使用线程环境(类似于上文所描述的线程环境)。差异在于线程环境并不接合于主机上。目标对针对每一映像将包路由到状态机进行管理。
图5为展示可有利地利用本发明的方面的示范性无线通信系统500的框图。为了说明的目的,图5展示三个远程单元520、530和550,以及两个基站540。将认识到,无线通信系统可具有更多许多的远程单元和基站。远程单元520、530和550包含IC装置525A、525C和525B,所述IC装置包含所揭示的多处理器装置。将认识到,其它装置也可包含所揭示的多处理器装置,例如基站、交换装置和网络设备。图5展示从基站540到远程单元520、530和550的前向链路信号580,和从远程单元520、530和550到基站540的反向链路信号590。
在图5中,远程单元520展示为移动电话,远程单元530展示为便携式计算机,且远程单元550展示为无线本地环路系统中的固定位置远程单元。举例来说,远程单元可为移动电话、手持式个人通信系统(PCS)单元、例如个人数据助理的便携式数据单元、具GPS功能的装置、导航装置、机顶盒、音乐播放器、视频播放器、娱乐单元、例如仪表读取设备的固定位置数据单元,或任何其它存储或检索数据或计算机指令的装置,或其任何组合。虽然图5说明根据本发明的教示的远程单元,但本发明不限于这些示范性所说明单元。可在包含多处理器系统的任何装置中合适地利用本发明的方面。
如图6中所展示,多处理器系统中的二级处理器可执行用于传送可执行软件映像的方法。如框602中所展示,二级处理器可起始与主处理器的通信。如框604中所展示,二级处理器可指令主处理器,以传送用于可执行软件映像的映像标头。可执行软件映像包含映像标头和至少一个数据片段。如框606中所展示,二级处理器可接收映像标头和至少一个数据片段。如框608中所展示,二级处理器可指示成功地接收到映像标头和至少一个数据片段。如框610中所展示,二级处理器可接收终止可执行软件映像传送的指示。如框612中所展示,二级处理器可确认接收到终止传送的指示。
多处理器装置可包括用于起始的装置、用于指令的装置、用于接收的装置、用于指示的装置和用于确认的装置。所述装置可包含应用处理器104、204;二级处理器302;处理器间通信总线134、234;硬件输送机构309;控制器304和/或物理数据管道310。在另一方面中,前述装置可为经配置以执行由前述装置所述的功能的模块或任何设备。
如图7中所展示,多处理器系统中的主处理器可接收传送用于可执行软件映像的映像标头的指令,所述可执行软件映像包括所述映像标头和至少一个数据片段,如框702中所展示。主处理器可将映像标头和至少一个数据片段发送到二级处理器,如框704中所展示。主处理器可从二级处理器接收到成功地接收映像标头和至少一个数据片段的指示,如框706中所展示。主处理器可发送终止可执行映像传送的指示,如框708中所展示。主处理器可从二级处理器接收对接收到终止传送指示的确认,如框710中所展示。
多处理器装置可包括用于接收的装置和用于发送的装置。所述装置可包含调制解调器处理器110、210;主处理器301;处理器间通信总线134、234;硬件输送机构308;系统存储器307和/或物理数据管道310。在另一方面中,前述装置可为经配置以执行由前述装置所述的功能的模块或任何设备。
对于固件和/或软件实施方案,可用执行本文中所描述的功能的模块(例如,程序、功能等等)实施所述方法。在实施本文中所描述的方法时,可使用任何有形地体现指令的机器可读媒体。举例来说,软件代码可存储在存储器中,且由处理器单元来执行。存储器可实施于处理器单元内或实施于处理器单元外部。如本文中所使用,术语“存储器”是指任何类型的长期、短期、易失性、非易失性或其它存储器,且不应限于任何特定类型的存储器,或任何特定数目个存储器,或存储存储器的媒体的类型。
如果在固件和/或软件中实施,那么可将所述功能作为一或多个指令或代码存储在计算机可读媒体上。实例包含编码有数据结构的计算机可读媒体和编码有计算机程序的计算机可读媒体。计算机可读媒体包含物理计算机存储媒体。存储媒体可为可由计算机存取的任何可用媒体。借助于实例而非限制,此类计算机可读媒体可包含RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置,磁盘存储装置或其它磁性存储装置,或任何其它可用于存储呈指令或数据结构形式的所要程序代码且可由计算机存取的媒体;如本文中所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)、软性磁盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘用激光以光学方式再现数据。上文的组合也应包含在计算机可读媒体的范围内。
除了存储在计算机可读媒体上之外,还可将指令和/或数据提供为通信设备中包含的传输媒体上的信号。举例来说,通信设备可包含具有指示指令和数据的信号的收发器。所述指令和数据经配置以使得一或多个处理器实施权利要求书中概述的功能。
尽管已阐述特定电路,但所属领域的技术人员将了解实践本发明并不要求所有所揭示的电路。此外,未描述某些众所周知的电路以保持集中于本发明。
尽管已详细描述本发明和其优势,但应理解,在不脱离如所附权利要求书所界定的本发明的技术的情况下,可在本文中作出各种改变、替代和变更。举例来说,相对于衬底或电子装置使用例如“上方”和“下方”等关系术语。当然,如果所述衬底或电子装置颠倒,则上方变成下方,且反之亦然。另外,如果侧向定向,则上方和下方可指代衬底或电子装置的侧面。此外,本申请案的范围并不意图限制于说明书中所描述的进程、机器、制造、物质组成、装置、方法和步骤的特定实施例。如所属领域的普通技术人员将容易地从本发明所了解,可根据本发明利用目前现有或稍后将开发的,执行与本文中所描述的对应实施例大体上相同的功能或实现与其大体上相同的结果的进程、机器、制造、物质组成、装置、方法或步骤。因此,所附权利要求书意图在其范围内包含此些进程、机器、制造、物质组成、装置、方法或步骤。
Claims (30)
1.一种在多处理器系统中的两个处理器之间的通信方法,所述方法包括:
由二级处理器起始与主处理器的通信;
由所述二级处理器指令所述主处理器传送用于可执行软件映像的映像标头,所述可执行软件映像包括所述映像标头和至少一个数据片段;
由所述二级处理器接收所述映像标头和至少一个数据片段;
由所述二级处理器向所述主处理器指示成功地接收到所述映像标头和至少一个数据片段;
由所述二级处理器从所述主处理器接收终止所述可执行软件映像传送的指示;和
由所述二级处理器向所述主处理器确认接收到所述终止传送指示。
2.根据权利要求1所述的方法,其中所述映像标头包括映像数据所在的存储器中的映像大小和位置。
3.根据权利要求1所述的方法,其进一步包括由所述二级处理器向所述主处理器发送对所述至少一个数据片段中的每一者的传送请求。
4.根据权利要求1所述的方法,其中所述指令包括由所述二级处理器向所述主处理器发送包括映像识别符、数据偏移和数据长度的消息。
5.根据权利要求1所述的方法,其进一步包括由所述二级处理器将用于传入数据片段的接收缓冲区设定为所述二级处理器的存储器中的目的地地址。
6.一种多处理器装置,其包括:
用于由二级处理器起始与主处理器的通信的装置;
用于由所述二级处理器指令所述主处理器传送用于可执行软件映像的映像标头的装置,所述可执行软件映像包括所述映像标头和至少一个数据片段;
用于由所述二级处理器接收所述映像标头和至少一个数据片段的装置;
用于由所述二级处理器向所述主处理器指示成功地接收到所述映像标头和至少一个数据片段的装置;
用于由所述二级处理器从所述主处理器接收终止所述可执行软件映像传送的指示的装置;和
用于由所述二级处理器向所述主处理器确认接收到所述终止传送指示的装置。
7.根据权利要求6所述的多处理器装置,其中所述映像标头包括映像数据所在的存储器中的映像大小和位置。
8.根据权利要求6所述的多处理器装置,其进一步包括用于由所述二级处理器向所述主处理器发送对所述至少一个数据片段中的每一者的传送请求的装置。
9.根据权利要求6所述的多处理器装置,其中所述用于指令的装置包括用于由所述二级处理器向所述主处理器发送包括映像识别符、数据偏移和数据长度的消息的装置。
10.根据权利要求6所述的多处理器装置,其进一步包括用于由所述二级处理器将用于传入数据片段的接收缓冲区设定为所述二级处理器的存储器中的目的地地址的装置。
11.一种计算机程序产品,其包括:
其上记录有非暂时性程序代码的非暂时性计算机可读媒体,所述非暂时性程序代码包括:
用以由二级处理器起始与主处理器的通信的程序代码;
用以由所述二级处理器指令所述主处理器传送用于可执行软件映像的映像标头的程序代码,所述可执行软件映像包括所述映像标头和至少一个数据片段;
用以由所述二级处理器接收所述映像标头和至少一个数据片段的程序代码;
用以由所述二级处理器向所述主处理器指示成功地接收到所述映像标头和至少一个数据片段的程序代码;
用以由所述二级处理器从所述主处理器接收终止所述可执行软件映像传送的指示的程序代码;和
用以由所述二级处理器向所述主处理器确认接收到所述终止传送指示的程序代码。
12.根据权利要求11所述的计算机程序产品,其中所述映像标头包括映像数据所在的存储器中的映像大小和位置。
13.根据权利要求11所述的计算机程序产品,其中所述非暂时性程序代码进一步包括用以由所述二级处理器向所述主处理器发送对所述至少一个数据片段中的每一者的传送请求的程序代码。
14.根据权利要求11所述的计算机程序产品,其中所述用以指令的程序代码包括用以由所述二级处理器向所述主处理器发送包括映像识别符、数据偏移和数据长度的消息的程序代码。
15.根据权利要求11所述的计算机程序产品,其中所述非暂时性程序代码进一步包括用以由所述二级处理器将用于传入数据片段的接收缓冲区设定为所述二级处理器的存储器中的目的地地址的程序代码。
16.一种在多处理器系统中的两个处理器之间的通信方法,所述方法包括:
由主处理器接收传送用于可执行软件映像的映像标头的指令,所述可执行软件映像包括所述映像标头和至少一个数据片段;
由所述主处理器将所述映像标头和至少一个数据片段发送到二级处理器;
由所述主处理器从所述二级处理器接收成功地接收到所述映像标头和至少一个数据片段的指示;
由所述主处理器发送终止所述可执行映像传送的指示;和
由所述主处理器从所述二级处理器接收对接收到所述终止传送指示的确认。
17.根据权利要求16所述的方法,其中所述映像标头包括映像数据所在的存储器中的映像大小和位置。
18.根据权利要求16所述的方法,其进一步包括由所述主处理器接收对所述主处理器的对所述至少一个数据片段中的每一者的传送请求。
19.根据权利要求16所述的方法,其进一步包括由所述主处理器从所述二级处理器接收包括映像识别符、数据偏移和数据长度的消息。
20.根据权利要求19所述的方法,其进一步包括基于所述消息发送数据。
21.一种多处理器装置,其包括:
用于由主处理器接收传送用于可执行软件映像的映像标头的指令的装置,所述可执行软件映像包括所述映像标头和至少一个数据片段;
用于由所述主处理器将所述映像标头和至少一个数据片段发送到二级处理器的装置;
用于由所述主处理器从所述二级处理器接收成功地接收到所述映像标头和至少一个数据片段的指示的装置;
用于由所述主处理器发送终止所述可执行映像传送的指示的装置;和
用于由所述主处理器从所述二级处理器接收对接收到所述终止传送指示的确认的装置。
22.根据权利要求21所述的多处理器装置,其中所述映像标头包括定位映像数据的存储器中的映像大小和位置。
23.根据权利要求21所述的多处理器装置,其进一步包括用于由所述主处理器接收对所述主处理器的对所述至少一个数据片段中的每一者的传送请求的装置。
24.根据权利要求21所述的多处理器装置,进一步包括用于由所述主处理器从所述二级处理器接收包括映像识别符、数据偏移和数据长度的消息的装置。
25.根据权利要求24所述的方法,其进一步包括用于基于所述消息而发送数据的装置。
26.一种计算机程序产品,其包括:
其上记录有非暂时性程序代码的非暂时性计算机可读媒体,所述非暂时性程序代码包括:
用以由主处理器接收传送用于可执行软件映像的映像标头的指令的程序代码,所述可执行软件映像包括所述映像标头和至少一个数据片段;
用以由所述主处理器将所述映像标头和至少一个数据片段发送到二级处理器的程序代码;
用以由所述主处理器从所述二级处理器接收成功地接收到所述映像标头和至少一个数据片段的指示的程序代码;
用以由所述主处理器发送终止所述可执行映像传送的指示的程序代码;和
用以由所述主处理器从所述二级处理器接收对接收到所述终止传送指示的确认的程序代码。
27.根据权利要求26所述的计算机程序产品,其中所述映像标头包括映像数据所在的存储器中的映像大小和位置。
28.根据权利要求26所述的计算机程序产品,其中所述非暂时性程序代码进一步包括用以由所述主处理器接收对所述主处理器的对所述至少一个数据片段中的每一者的传送请求的程序代码。
29.根据权利要求26所述的计算机程序产品,其中所述非暂时性程序代码进一步包括用以由所述主处理器从所述二级处理器接收包括映像识别符、数据偏移和数据长度的消息的程序代码。
30.根据权利要求29所述的计算机程序产品,其中所述非暂时性程序代码进一步包括用以基于所述消息发送数据的程序代码。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/310,928 | 2011-12-05 | ||
US13/310,928 US9058191B2 (en) | 2010-03-22 | 2011-12-05 | Direct transfer of executable software image to memory allocated by target processor based on transferred image header |
PCT/US2012/068052 WO2013086062A1 (en) | 2011-12-05 | 2012-12-05 | Inter-processor protocol in a multi-processor system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103975305A true CN103975305A (zh) | 2014-08-06 |
CN103975305B CN103975305B (zh) | 2017-10-31 |
Family
ID=47472020
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280059732.7A Active CN103975305B (zh) | 2011-12-05 | 2012-12-05 | 多处理器系统中的处理器间协议 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9058191B2 (zh) |
EP (1) | EP2788870A1 (zh) |
JP (4) | JP5890038B2 (zh) |
KR (1) | KR101627097B1 (zh) |
CN (1) | CN103975305B (zh) |
WO (1) | WO2013086062A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113204438A (zh) * | 2021-03-24 | 2021-08-03 | 深圳震有科技股份有限公司 | 一种amp系统核间通讯方法及系统 |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8838949B2 (en) | 2010-03-22 | 2014-09-16 | Qualcomm Incorporated | Direct scatter loading of executable software image from a primary processor to one or more secondary processor in a multi-processor system |
KR102011137B1 (ko) | 2012-12-07 | 2019-08-14 | 삼성전자주식회사 | 데이터 처리 장치와 회로 |
US9594718B2 (en) | 2013-01-24 | 2017-03-14 | Qualcomm Innovation Center, Inc. | Hardware accelerated communications over a chip-to-chip interface |
US8954992B2 (en) * | 2013-03-15 | 2015-02-10 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Distributed and scaled-out network switch and packet processing |
JP6089349B2 (ja) * | 2013-05-28 | 2017-03-08 | ▲ホア▼▲ウェイ▼技術有限公司Huawei Technologies Co.,Ltd. | マルチコアアーキテクチャでのリソース分離を支援するための方法およびシステム |
KR102116096B1 (ko) * | 2013-12-20 | 2020-05-27 | 한화테크윈 주식회사 | 다중시스템 및 이의 부팅 방법 |
KR102083931B1 (ko) | 2014-01-21 | 2020-03-03 | 한화테크윈 주식회사 | 광각 렌즈계 |
TWI557644B (zh) * | 2014-11-12 | 2016-11-11 | 鴻海精密工業股份有限公司 | 雙處理器電子裝置及其快速開機啓動的方法 |
CN105704749A (zh) * | 2016-01-11 | 2016-06-22 | 努比亚技术有限公司 | 网络参数恢复装置及方法 |
US10564983B2 (en) * | 2016-06-15 | 2020-02-18 | Vmware, Inc. | Multiprocessor initialization via firmware configuration |
WO2020031184A1 (en) * | 2018-08-06 | 2020-02-13 | Accelario Software Ltd. | Data migration methods and system |
US11824009B2 (en) | 2018-12-10 | 2023-11-21 | Preferred Networks, Inc. | Semiconductor device and data transferring method for semiconductor device |
US11853104B2 (en) * | 2019-06-27 | 2023-12-26 | Netapp, Inc. | Virtual machine backup from computing environment to storage environment |
US11354455B2 (en) | 2019-09-11 | 2022-06-07 | International Business Machines Corporation | Maintenance of access for security enablement on a host system |
US11206144B2 (en) | 2019-09-11 | 2021-12-21 | International Business Machines Corporation | Establishing a security association and authentication to secure communication between an initiator and a responder |
US11188659B2 (en) | 2019-09-11 | 2021-11-30 | International Business Machines Corporation | Concurrent enablement of encryption on an operational path at a host port |
US11308243B2 (en) | 2019-09-11 | 2022-04-19 | International Business Machines Corporation | Maintenance of access for security enablement in a storage device |
US11201749B2 (en) | 2019-09-11 | 2021-12-14 | International Business Machines Corporation | Establishing a security association and authentication to secure communication between an initiator and a responder |
US11188658B2 (en) | 2019-09-11 | 2021-11-30 | International Business Machines Corporation | Concurrent enablement of encryption on an operational path at a storage port |
US11303441B2 (en) | 2019-09-25 | 2022-04-12 | International Business Machines Corporation | Reverting from a new security association to a previous security association in response to an error during a rekey operation |
US11245521B2 (en) | 2019-09-25 | 2022-02-08 | International Business Machines Corporation | Reverting from a new security association to a previous security association in response to an error during a rekey operation |
US11570586B2 (en) * | 2020-07-02 | 2023-01-31 | At&T Intellectual Property I, L.P. | Location aware assignment of resources for push to talk (PTT) communication systems in a fifth generation (5G) network or other next generation wireless communication system |
KR102485287B1 (ko) * | 2020-12-15 | 2023-01-04 | 현대오토에버 주식회사 | 태스크 실행 시간 모니터링 장치 및 노드의 동작 방법 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5978589A (en) * | 1995-12-30 | 1999-11-02 | Samsung Electronics Co., Ltd. | Loading method of base station system in digital cellular system |
CN1832475A (zh) * | 2005-03-08 | 2006-09-13 | 微软公司 | 通过请求-响应传输的可靠的请求-响应消息通信 |
CN101107592A (zh) * | 2005-01-22 | 2008-01-16 | Lm爱立信电话有限公司 | 操作系统友好引导加载器 |
CN101636715A (zh) * | 2007-03-23 | 2010-01-27 | 高通股份有限公司 | 用于多处理器系统的指令通信技术 |
WO2011119648A1 (en) * | 2010-03-22 | 2011-09-29 | Qualcomm Incorporated | Direct scatter loading of executable software image from a primary processor to one or more secondary processor in a multi-processor system |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3639571A1 (de) | 1986-11-20 | 1988-06-01 | Standard Elektrik Lorenz Ag | Verfahren und schaltungsanordnung zum urladen eines zweitrechners |
JPH06195310A (ja) | 1992-12-22 | 1994-07-15 | Fujitsu Ltd | マルチcpuに対する制御データ書換え方法 |
JPH07253960A (ja) * | 1994-03-16 | 1995-10-03 | Fujitsu Ltd | マルチプロセッサシステムにおけるipl方式 |
JPH08161283A (ja) | 1994-12-07 | 1996-06-21 | Sony Corp | 複数プロセツサシステム |
JPH09244902A (ja) | 1996-03-12 | 1997-09-19 | Oki Electric Ind Co Ltd | ダウンロード回路 |
KR100265955B1 (ko) * | 1996-12-02 | 2000-09-15 | 김영환 | 주프로세서에대해다수개의부프로세서가존재하는시스템의부프로세서로딩방법 |
JPH11282686A (ja) * | 1998-03-30 | 1999-10-15 | Hitachi Ltd | ネットワークコンピュータシステム |
JP2000020492A (ja) | 1998-06-29 | 2000-01-21 | Yaskawa Electric Corp | サブcpuへのプログラムダウンロード方法およびそのnc装置 |
US20020138156A1 (en) | 2001-01-25 | 2002-09-26 | Wong Isaac H. | System of connecting multiple processors in cascade |
KR100946831B1 (ko) | 2001-01-31 | 2010-03-09 | 가부시키가이샤 히타치세이사쿠쇼 | 데이터 처리 시스템 및 데이터 프로세서 |
US7093104B2 (en) | 2001-03-22 | 2006-08-15 | Sony Computer Entertainment Inc. | Processing modules for computer architecture for broadband networks |
JP2003036251A (ja) * | 2001-07-23 | 2003-02-07 | Hitachi Ltd | 信号処理装置 |
JP2004086447A (ja) | 2002-08-26 | 2004-03-18 | Renesas Technology Corp | マイクロコンピュータ |
CN1595372A (zh) | 2003-09-12 | 2005-03-16 | 翁嘉联 | 一种改进bios执行的方法 |
US7496917B2 (en) | 2003-09-25 | 2009-02-24 | International Business Machines Corporation | Virtual devices using a pluarlity of processors |
JP2007157150A (ja) | 2005-12-06 | 2007-06-21 | Samsung Electronics Co Ltd | メモリシステム及びそれを含むメモリ処理方法 |
JP2007183705A (ja) * | 2006-01-04 | 2007-07-19 | Olympus Corp | マルチプロセッサシステム |
JP2007213292A (ja) | 2006-02-09 | 2007-08-23 | Nec Electronics Corp | マルチプロセッサシステム及びスレーブシステムの起動方法 |
US7447846B2 (en) | 2006-04-12 | 2008-11-04 | Mediatek Inc. | Non-volatile memory sharing apparatus for multiple processors and method thereof |
WO2008001671A1 (fr) | 2006-06-27 | 2008-01-03 | Nec Corporation | Système multiprocesseur et terminal portable l'utilisant |
KR20100034415A (ko) | 2008-09-24 | 2010-04-01 | 삼성전자주식회사 | 메모리 링크 아키텍쳐를 활용한 부팅기능을 갖는 멀티 프로세서 시스템 |
CN101387952B (zh) | 2008-09-24 | 2011-12-21 | 上海大学 | 单芯片多处理器任务调度管理方法 |
KR20110013867A (ko) | 2009-08-04 | 2011-02-10 | 삼성전자주식회사 | 메모리 링크 아키텍쳐에서 플래시 레스 부팅 기능을 갖는 멀티 프로세서 시스템 |
JP5999532B2 (ja) * | 2015-09-16 | 2016-09-28 | ヤマハ株式会社 | Pll回路 |
-
2011
- 2011-12-05 US US13/310,928 patent/US9058191B2/en active Active
-
2012
- 2012-12-05 CN CN201280059732.7A patent/CN103975305B/zh active Active
- 2012-12-05 JP JP2014546042A patent/JP5890038B2/ja active Active
- 2012-12-05 KR KR1020147018511A patent/KR101627097B1/ko not_active Application Discontinuation
- 2012-12-05 WO PCT/US2012/068052 patent/WO2013086062A1/en active Search and Examination
- 2012-12-05 EP EP12809417.4A patent/EP2788870A1/en not_active Ceased
-
2016
- 2016-02-17 JP JP2016027736A patent/JP6336498B2/ja active Active
-
2017
- 2017-03-30 JP JP2017067173A patent/JP2017117499A/ja active Pending
- 2017-12-14 JP JP2017239644A patent/JP2018045718A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5978589A (en) * | 1995-12-30 | 1999-11-02 | Samsung Electronics Co., Ltd. | Loading method of base station system in digital cellular system |
CN101107592A (zh) * | 2005-01-22 | 2008-01-16 | Lm爱立信电话有限公司 | 操作系统友好引导加载器 |
CN1832475A (zh) * | 2005-03-08 | 2006-09-13 | 微软公司 | 通过请求-响应传输的可靠的请求-响应消息通信 |
CN101636715A (zh) * | 2007-03-23 | 2010-01-27 | 高通股份有限公司 | 用于多处理器系统的指令通信技术 |
WO2011119648A1 (en) * | 2010-03-22 | 2011-09-29 | Qualcomm Incorporated | Direct scatter loading of executable software image from a primary processor to one or more secondary processor in a multi-processor system |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113204438A (zh) * | 2021-03-24 | 2021-08-03 | 深圳震有科技股份有限公司 | 一种amp系统核间通讯方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US20120089814A1 (en) | 2012-04-12 |
EP2788870A1 (en) | 2014-10-15 |
US9058191B2 (en) | 2015-06-16 |
JP2017117499A (ja) | 2017-06-29 |
WO2013086062A1 (en) | 2013-06-13 |
CN103975305B (zh) | 2017-10-31 |
KR20140098246A (ko) | 2014-08-07 |
JP6336498B2 (ja) | 2018-06-06 |
JP2015508520A (ja) | 2015-03-19 |
JP2016115371A (ja) | 2016-06-23 |
KR101627097B1 (ko) | 2016-06-03 |
JP5890038B2 (ja) | 2016-03-22 |
JP2018045718A (ja) | 2018-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103975305A (zh) | 多处理器系统中的处理器间协议 | |
KR101412173B1 (ko) | 다중―프로세서 시스템에서 1차 프로세서로부터 하나 이상의 2차 프로세서로의 실행 가능 소프트웨어 이미지의 직접적인 분산 로딩 | |
JP2013522803A5 (zh) | ||
US20210011785A1 (en) | Methods and apparatus for correcting out-of-order data transactions between processors | |
CN109976767B (zh) | 软件烧录方法和装置 | |
CN110633097A (zh) | 一种单片机的ota升级方法及装置 | |
CN104679685A (zh) | 基板管理控制器存取方法 | |
JP2015043237A (ja) | メモリシステム | |
CN111736866A (zh) | 兼容一对一和一对多的在线升级方法及终端设备 | |
CN111800488B (zh) | 一种基于udp和ipv6协议的数据传输方法及系统 | |
US20090064129A1 (en) | Suspend and resume mechanisms on a flash memory | |
CN116466986A (zh) | 储能系统的设备软件升级方法、装置、通讯模块以及介质 | |
US11768943B2 (en) | Secure element and method for starting an application by a low-level operating system | |
CN115102855A (zh) | 智能水表嵌入式软件在线升级方法及系统 | |
US7751269B2 (en) | Coupling device for transmitting data | |
CN101154206B (zh) | 耦合设备、处理器装置、数据处理装置、传输数据的方法 | |
CN116648871A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN117950474A (zh) | 一种集中式rru复位控制方法 | |
JPH02171063A (ja) | ファイルデータ転送装置 | |
JP2005332295A (ja) | ダウンロード方法およびそれを用いたプロセス制御システム | |
JPS592459A (ja) | デ−タ通信方式 | |
JP2000242488A (ja) | メモリ書き換え方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |