CN1225691C - 一种程序动态加载方法 - Google Patents
一种程序动态加载方法 Download PDFInfo
- Publication number
- CN1225691C CN1225691C CN 02141179 CN02141179A CN1225691C CN 1225691 C CN1225691 C CN 1225691C CN 02141179 CN02141179 CN 02141179 CN 02141179 A CN02141179 A CN 02141179A CN 1225691 C CN1225691 C CN 1225691C
- Authority
- CN
- China
- Prior art keywords
- program
- section
- load
- loaded
- loading
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及对芯片阵列进行程序的动态加载的方法。一种程序动态加载的方法,其特征在于包括:将欲加载的程序分割成段,在加载时按照一定时间间隔逐一加载各段程序,当所有程序都加载完成后,重新组合成完整的程序文件,从而实现程序的动态加载。本发明通过将加载的程序分割成段,通过段头中段序列号信息标识索引各段,加载程序时按照一定时间间隔逐一加载各段的方法避免程序加载对总线的长时间占用,消除对正常业务通讯的影响,从而实现程序的动态加载,即程序加载时可以不中断正常的业务通信。
Description
技术领域
本发明涉及通信领域,尤其涉及对芯片阵列进行程序的动态加载。
背景技术
由于半导体技术的发展和用户对设备容量的需求越来越大,在单板上布置芯片阵列成为一种趋势。芯片阵列由多个芯片组成,芯片之间可能实现相同的功能,也可能实现不同的功能但互相配合或者互补,芯片之间依靠总线连接在一起组成阵列。
为了简化设计,很多芯片阵列采用业务接口和程序加载接口共用一套物理总线的实现方案,即业务数据流和加载程序的数据流都通过同一套总线进行传递和通讯。因此,为了避免总线争用对业务数据通讯的影响,加载程序必须在芯片阵列不传递业务数据的情况下才能进行,否则,将引起总线竞争,导致混乱和错误的出现。即使对芯片阵列中的某一个芯片进行加载,也势必中断或严重影响整个芯片阵列的业务通讯。
发明内容
本发明就是针对以上情况,提出一种动态加载程序的方法,克服竞争总线待来的弊端:
本发明提供一种程序动态加载的方法,其特征在于包括如下步骤:
将欲向芯片加载的程序分割成段;
为各段程序设置一个段头,在段头中包含段头标识,所述的段头标识中包含段序列号信息和程序的分段信息,根据当前段序列号信息索引下一个分段;
设置一个主控程序,并加载该主控程序,该主控程序携带程序加载所需的配置信息,并完成对加载过程的控制和消息处理;
将分割成段的程序向芯片加载,加载时按照一定时间间隔逐一加载,并且在所述时间间隔内利用总线进行业务通讯;
当所有程序段加载到芯片之后,拆掉段头标识并重新组成完整的程序,从而实现程序的动态加载。
所述的欲加载的程序是输入到主机(HOST)的。
所述的程序动态加载方法,能够通过段头标识中包括段序列号和程序的分段信息在内的相关信息判断加载的段是否合法、是否正确。
所述的程序动态加载方法,通过段头标识中程序的分段信息判断整个程序是否加载完毕。
所述的程序动态加载方法,在段头标识中还包括差错控制信息,通过主机(HOST)与被加载芯片之间的握手信息将程序段是否加载正确的信息告知主机(HOST),如果某一段加载正确时,主机(HOST)继续加载下一段,否则重新加载本段。
所述的重新加载,是重新发送段的一部分或是重新加载段的全部。
所述的程序动态加载方法,该时间间隔通过设置定时机制来控制。
所述的程序动态加载方法,该定时机制是通过主机(HOST)上的定时机制来控制,当时间一到时开始加载下一段程序。
所述的程序动态加载方法,该定时机制可以通过被加载的芯片上的定时机制来控制,当被加载芯片判断时间到时被加载的芯片向主机(HOST)发送消息要求加载下一段,主机(HOST)接收到这个消息后开始加载下一段。
所述的程序动态加载方法,设置一个计数器记录重新加载的次数,如果超过一定的阈值,则停止加载,则作为错误事件处理。
所述的程序动态加载方法,设置一个超时机制,在加载过程中如果一定时间内没有相应的响应,则作为错误事件处理。
本发明通过将加载的程序分割成段,通过段头中段序列号信息标识索引各段,加载程序时按照一定时间间隔逐一加载各段的方法避免程序加载对总线的长时间占用,可以消除对正常业务通讯的影响,从而实现程序的动态加载,即程序加载时可以不中断正常业务通信。
附图说明
图1是本发明实施例的一个单板示意图;
图2是本发明的一个流程图。
具体实施方式
下面结合说明书附图来说明本发明的具体实施方式。
如图1所示,是一个常见的单板模型,在通信领域,在该单板上布置芯片阵列已经成为较为普及的技术。
本发明的核心思想,是通过将加载的程序分割成段,通过段头中段序列号信息标识索引各段,加载程序时按照一定时间间隔逐—加载各段的方法避免程序加载业务对总线的长时间占用,以消除对业务通讯的影响,当加载完成后,重新组合成完整的程序文件,从而实现程序的动态加载,即程序加载时可以不中断业务通信。
如图2所示,是本发明加载的流程图。
本发明在加载前,可以加载一个很短的主控程序,此主控程序携带程序加载所需的配置信息,比如需要加载哪些文件,程序启动地址等等,并主要完成对加载的过程的控制和消息处理功能。
该程序的加载,是输入到主机(HOST)的,该主机可以是是芯片阵列单板上的LOCAL CPU,也可以是系统中的主控单板,甚至可以是一个系统的后台。
在加载该主控程序时,除了使用主机加载外,还可以通过BIOS加载。
在主控程序加载的过程中,如果主控程序加载成功,则返回正确消息,否则返回错误消息并要求重新加载。如果重新加载的次数超过一定阈值时,则停止加载并上报错误事件消息。比如,我们将阈值设置为3,则超过3次时,停止加载并上报错误时间消息。
对于欲加载的程序,我们先将其分段,将大的程序进行分割,以利于数据传送,段的大小与正常的业务数据包的大小相似,可以根据具体的业务不同而定。
然后对将分好的数据段进行处理,在每一个数据段之前加上段头,该段头中包含段序列号信息,段头中还包含整个文件分段的信息,在数据传送的过程中,可以根据当前段的段序列号信息索引下一个分段。
然后向芯片加载该程序,在加载时,要逐段加载,保证段和段之间有一定的时间间隔,该时间间隔大小与业务数据包的时间间隔类似,这也是为了避免总线竞争带来的影响。该时间间隔,可以通过设置一个定时机制,通过该定时机制来控制时间间隔。比如可以通过HOST上的定时器来控制,当时间一到,则开始加载下一段文件;该定时机制也可以通过被加载的芯片定时器来控制,当时间到时,被加载的芯片向HOST发送消息要求加载下一段,HOST接收到这个消息后开始加载下一段程序。
在加载的过程中,可以通过段头中段序列号等信息来判断加载的数据段是否合法,是否连续等。
当欲加载的文件分段都加载到芯片上时,拆掉段头标识并重组成完整的程序文件。该段头标识的拆掉,可以根据实际情况的不同而确定,可以在全部程序分段都加载完毕之后拆掉,也可以边加载边拆掉,加载一段程序后即拆掉该段程序的段头标识,这样当加载所有程序段后,直接组合即可。
整个程序文件加载成功后,向HOST发送加载文件加载成功消息;反之则上报文件加载失败消息,并要求重新加载。
实际使用中,该加载成功消息的发送,并不一定是必须的步骤,即不一定非要通过成功加载消息上报,还可以通过查询寄存器等方式来检测是否加载成功,同样的道理,上述的失败消息,也不一定通过消息发送的方式得到。
在实际操作中,可根据每一种加载失败的情况,设置一个计数器,用来记录重新加载的次数,如果超过一定的阈值,则停止加载,并上报错误信息。一面产生循环错误。该阈值的设立可以灵活掌握,在重新加载计数器的阈值也是可改变设置的。
当芯片阵列的业务模型(包括业务数据包的大小、业务数据包的发送时间间隔等)发生改变时,可以随之调整段的大小和段的加载时间间隔。
以上所述,只是加载一个程序的过程,在实际应用中,可能需要加载许多个程序,这时,可以按照本发明的上述方法分段、加载、控制,原理相同。
下面看一个具体的加载实例。
如图1所示,是一个语音处理单板方案,可以实现分组语音通讯。此方案由一个HOST、若干片语音处理芯片组成的芯片阵列、汇聚逻辑和分组处理单元组成。其中,芯片阵列通过业务总线汇聚到汇聚逻辑,HOST也有一个与汇聚逻辑相连接的配置和加载接口。每个语音处理芯片的语音包通过业务总线传递到汇聚逻辑,再传递到分组处理单元;HOST通过配置加载接口经由汇聚逻辑对芯片阵列进行加载,加载数据也是通过业务总线传递到每一个语音处理芯片。
本实施例的加载包括以下步骤:
1.将需要加载的程序文件分成段,分为每段长度为300BYTES的程序段,与30ms的G.711语音数据包长度相仿(240BYTES),不足300BYTES的段可以填充无效字节。
然后在每一段增加段头,其格式为:
段标识8比特 | 文件尾标识1比特 | 段序列号16比特 | 段有效长度15比特 | CRC校验8比特 | 段内容1-294字节 | 填充字节0-293字节 |
其中:
段标识:01111110
文件尾标识:0:非文件尾;1:文件尾
段序列号:每一个文件的第一个段的段序列号为0,以后依次增加1。
CRC校验;使用CRC-8校验多项式
段内容:需要加载的程序文件内容
填充字节:0XFF,如果不足300字节时,用以填充。
2.加载前先加载一个长度约250字节的主控程序,此主控程序携带程序加载所需要的配置信息,并主要完成对加载的过程的控制和消息处理功能。如果主控程序加载成功,则返回主控程序加载成功消息,否则返回主控程序加载失败消息并要求重新加载。
3.根据段序列号逐段加载程序,并且每30ms加载一段。在语音处理芯片中设置一个定时器,每30ms向HOST发送一个消息,当HOST检测到这个消息时即发送下一段。
4.语音处理每接收一段则根据段标识、段序列号、段有效长度和CRC校验判断本段加载是否正确,如果正确,则反馈段加载成功消息;如错误,则反馈段加载失败消息。当HOST接收到加载成功消息时,则继续加载下一段;否则重新加载上一段。
5.语音处理根据文件尾标识判断是否加载完毕整个程序文件,如果整个文件加载正确,则反馈文件加载成功消息;如错误,则反馈文件加载失败消息。当HOST接收到文件加载成功消息时,则继续加载下一文件;否则重新加载上一文件。
6.所有文件加载完毕后,开始运行程序,如果运行正常,则反馈程序加载正常消息;如错误,则反馈程序加载失败消息。当HOST接收到程序加载成功消息时,则开始正常运行;否则重新加载一遍。
7.当因段加载、文件加载和程序失败导致的重新加载的次数超过3次后,则停止加载,并上报错误事件消息。
8.当芯片阵列使用5ms G.711语音编解码业务时,将母个文件分段的大小定为50字节(与5ms G.711语音数据大小40字节相似),并修改段有效长度信息;将段加载间隔变为5ms。
本发明通过将加载的程序分割成段,通过段头中段序列号信息标识索引各段,加载程序时按照一定时间间隔逐一加载各段的方法避免程序加载业务对总线的长时间占用,消除了程序加载对业务通讯的影响,从而实现程序的动态加载,程序在加载时可以不中断业务通信,效果非常明显。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
Claims (11)
1.一种程序动态加载的方法,其特征在于包括如下步骤:
将欲向芯片加载的程序分割成段;
为各段程序设置一个段头,在段头中包含段头标识,所述的段头标识中包含段序列号信息和程序的分段信息,根据当前段序列号信息索引下一个分段;
设置一个主控程序,并加载该主控程序,该主控程序携带程序加载所需的配置信息,并完成对加载过程的控制和消息处理;
将分割成段的程序向芯片加载,加载时按照一定时间间隔逐一加载,并且在所述时间间隔内利用总线进行业务通讯;
当所有程序段加载到芯片之后,拆掉段头标识并重新组成完整的程序,从而实现程序的动态加载。
2.如权利要求1所述的程序动态加载的方法,其特征在于,所述的欲加载的程序,是输入到主机HOST的。
3.如权利要求1所述的程序动态加载的方法,其特征在于能够通过段头标识中包括段序列号和程序的分段信息在内的相关信息判断加载的段是否合法、是否正确。
4.如权利要求1所述的程序动态加载的方法,其特征在于通过段头标识中程序的分段信息判断整个程序是否加载完毕。
5.如权利要求3所述的程序动态加载的方法,其特征在于在段头标识中还包括差错控制信息,通过主机HOST与被加载芯片之间的握手信息将程序段是否加载正确的信息告知主机HOST,如果某一段加载正确时,主机HOST继续加载下一段,否则重新加载本段。
6.如权利要求5所述的程序动态加载的方法,其特征在于所述的重新加载,是重新发送段的一部分或是重新加载段的全部。
7.如权利要求1或2所述的程序动态加载的方法,其特征在于该时间间隔通过设置定时机制来控制。
8.如权利要求7所述的程序动态加载的方法,其特征在于,该定时机制是通过主机HOST上的定时机制来控制,当时间一到时开始加载下一段程序。
9.如权利要求7所述的程序动态加载的方法,其特征在于,该定时机制通过被加载的芯片上的定时机制来控制,当被加载芯片判断时间到时被加载的芯片向主机HOST发送消息要求加载下一段,主机HOST接收到这个消息后开始加载下一段。
10.如权利要求5所述的程序动态加载的方法,其特征在于设置一个计数器,记录重新加载的次数,如果超过一定的阈值,则停止加载,则作为错误事件处理。
11.如权利要求7所述的程序动态加载的方法,其特征在于设置一个超时机制,在加载过程中如果一定时间内没有相应的响应,则作为错误事件处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 02141179 CN1225691C (zh) | 2002-07-08 | 2002-07-08 | 一种程序动态加载方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 02141179 CN1225691C (zh) | 2002-07-08 | 2002-07-08 | 一种程序动态加载方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1467631A CN1467631A (zh) | 2004-01-14 |
CN1225691C true CN1225691C (zh) | 2005-11-02 |
Family
ID=34147733
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 02141179 Expired - Fee Related CN1225691C (zh) | 2002-07-08 | 2002-07-08 | 一种程序动态加载方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1225691C (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7555612B2 (en) * | 2004-08-31 | 2009-06-30 | Alcatel-Lucent Usa Inc. | Adaptive control of loading a program in a disk-based operating system |
CN100342335C (zh) * | 2004-09-23 | 2007-10-10 | 华为技术有限公司 | 芯片程序加载方法 |
CN1834911B (zh) * | 2005-03-14 | 2010-04-28 | 华为技术有限公司 | 实现程序加载运行的方法 |
US8429218B2 (en) * | 2006-04-06 | 2013-04-23 | International Business Machines Corporation | Process restart on a compute node |
CN102158561B (zh) * | 2011-04-26 | 2015-09-16 | 中兴通讯股份有限公司 | 单板组件批量下载的方法、装置及系统 |
CN102520995B (zh) * | 2011-12-06 | 2014-11-12 | 北京航空航天大学 | 软件远程流式加载方法及系统 |
US8832296B2 (en) | 2011-12-15 | 2014-09-09 | Microsoft Corporation | Fast application streaming using on-demand staging |
CN103235728B (zh) * | 2013-03-20 | 2016-08-10 | 青岛海信移动通信技术股份有限公司 | Android终端中预置第三方应用的安装方法和装置 |
-
2002
- 2002-07-08 CN CN 02141179 patent/CN1225691C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1467631A (zh) | 2004-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2746363B2 (ja) | メッセージ通信方法 | |
CN1147204C (zh) | 用于在无线电通信系统中分配随机接入信道的方法与系统 | |
US7487424B2 (en) | Bitmap manager, method of allocating a bitmap memory, method of generating an acknowledgement between network entities, and network entity implementing the same | |
CN1225691C (zh) | 一种程序动态加载方法 | |
CN101047714A (zh) | 一种处理网络数据的方法及系统 | |
CN1647412A (zh) | 无线通信系统 | |
CN1340255A (zh) | 实时业务中的标题压缩 | |
CN1096763C (zh) | 时间分集无线电系统中的消息分段 | |
CN101052013A (zh) | 一种网络设备内部管理通道实现的方法及系统 | |
CN85109433A (zh) | 数据分系统通信量控制设备和方法 | |
CN1088033A (zh) | 在寄存器型无线设备间传送可变长度消息的方法和装置 | |
CN1263262C (zh) | 用于处理带宽分配消息的系统和方法 | |
CN1756108A (zh) | 主备系统数据同步方法 | |
CN101060338A (zh) | 一种卷积码速率匹配的方法和装置 | |
CN101069221A (zh) | 无线voip的编码解码器辅助的容量增强 | |
CN1136685C (zh) | 用于移动通信系统的无线电链路协议装置和方法 | |
CN112600647A (zh) | 基于网络编码续航的多跳无线网络传输方法 | |
CN1767423A (zh) | 一种多载波高速下行分组接入系统中的数据传输控制方法 | |
CN1589548A (zh) | 在以太网体系结构中实现动态信道化的接口和相关方法 | |
CN109688208B (zh) | 一种基于fc-ae-asm消息的数据加载方法 | |
JPH07221780A (ja) | データパケットの受信の速度を上げるためのシステム | |
CN106850660B (zh) | 一种基于SocketCAN的SAE J1939传输协议的设计方法 | |
CN1842050A (zh) | 一种上行宏分集合并的方法 | |
CN1905513A (zh) | 一种对ppp多链路协议报文进行按序重组的方法 | |
CN101060499A (zh) | 通信设备、通信方法以及计算机程序产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20051102 Termination date: 20130708 |