CN101458624A - 可编程逻辑器件的加载方法、处理器和装置 - Google Patents
可编程逻辑器件的加载方法、处理器和装置 Download PDFInfo
- Publication number
- CN101458624A CN101458624A CNA2007101795650A CN200710179565A CN101458624A CN 101458624 A CN101458624 A CN 101458624A CN A2007101795650 A CNA2007101795650 A CN A2007101795650A CN 200710179565 A CN200710179565 A CN 200710179565A CN 101458624 A CN101458624 A CN 101458624A
- Authority
- CN
- China
- Prior art keywords
- programmable logic
- processor
- pld
- logic device
- load
- 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
- 238000011068 loading method Methods 0.000 title claims abstract description 139
- 238000000034 method Methods 0.000 claims abstract description 118
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 claims 1
- 230000009977 dual effect Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000004088 simulation Methods 0.000 description 6
- 238000012360 testing method Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
- Hardware Redundancy (AREA)
Abstract
公开了可编程逻辑器件的加载方法、处理器和装置。属于网络通讯技术领域。所述可编程逻辑器件的加载方法适用于具有多处理器的装置中、且一个处理器对应至少一个可编程逻辑器件,所述方法包括:所述多处理器中的预定处理器接收被加载可编程逻辑器件的加载信息;所述被加载可编程逻辑器件为所述多处理器中除所述预定处理器之外的其它处理器对应的可编程逻辑器件;所述预定处理器根据所述接收的加载信息对所述被加载可编程逻辑器件进行加载操作。所述预定处理器还可以根据被加载的可编程逻辑器件输出的状态指示信号判断出加载失败后,重新对所述被加载的可编程逻辑器件进行加载操作。保证了具有多处理器的装置的可维护性、以及可靠性。
Description
技术领域
本发明涉及网络通讯技术领域,具体涉及一种可编程逻辑器件的加载方法、处理器和具有多处理器的装置。
背景技术
CPLD/EPLD(Complex Programmable Logic Device/Erasable Programmablelogic Device,复杂可编程逻辑器件/可擦可编程逻辑器件)的应用范围非常广泛。随着CPLD/EPLD规模的增大、内部集成功能的增多,使用CPLD/EPLD的装置如产品或设备对CPLD/EPLD加载升级以消除前期设计缺陷或实现更多的特性的需求越来越多。
目前,CPLD/EPLD加载升级的方法主要有如下两种:
方法一、通过JTAG(Joint Test Action Group Standard Test Access Port andBoundary-Scan Architecture,联合测试行动组的边界扫描测试接口)线缆进行加载升级,如附图1所示。
图1中,CPLD/EPLD具有JTAG端口,计算机或ICT(In-Circuit Test,在线测试)设备通过JTAG线缆与使用CPLD/EPLD的装置如产品或设备连接,计算机或ICT通过JATG线缆对CPLD/EPLD进行加载升级。
在实现本发明的过程中,发明人发现上述方法一至少存在如下问题:
由于方法一需要使用JTAG线缆,因此,方法一无法支持CPLD/EPLD加载的在线升级。当CPLD/EPLD需要进行加载升级时,需要将使用CPLD/EPLD的装置返回生产厂家进行加载升级,或者由技术人员到产品或设备现场通过JTAG线缆进行加载升级,加载升级实现方式不灵活,导致装置可维护性差。
方法二、支持在线加载升级,如附图2所示。
图2中,使用CPLD/EPLD的装置中的管理/控制单元接收升级的加载数据,这里的加载数据可以是远程网络管理单元传输来的,也可以是产品或设备的本地对外接口接收的。管理/控制单元的GPIO(General Purpose Input/Output,通用输入输出)或其它IO方式通过模拟JTAG接口与被加载器件如CPLD/EPLD连接,并根据接收到的加载数据对被加载器件进行加载升级。
在实现本发明的过程中,发明人发现上述方法二至少存在如下问题:
通常图2中的管理/控制单元可以包括处理器和程序存储器,例如图2中的管理/控制单元包括图3中的处理器和EEPROM/FLASH(Electrically ErasableProgrammable Read Only Memory/Flash Memory,电可擦可编程只读存储器/闪速存储器)。EEPROM/FLASH为处理器对应的程序存储器,程序存储器接口的数据/地址解复用在CPLD/EPLD中实现,即处理器通过CPLD/EPLD进行数据/地址解复用后与程序存储器连接。处理器在对CPLD/EPLD进行在线加载升级过程中,如果出现掉电或***异常复位等情况,则CPLD/EPLD在线加载升级失败。CPLD/EPLD在线加载升级失败会使处理器无法从程序存储器中获取数据,最终导致处理器无法正常启动。
综上所述,现有的加载升级方法要么存在由于不支持在线加载升级而导致的装置可维护性差的问题,要么存在由于处理器无法正常启动而导致的装置可靠性差的问题。
发明内容
本发明实施方式提供一种可编程逻辑器件的加载方法、处理器和具有多处理器的装置,提高了多处理器的装置的可编程器件加载可靠性。
本发明实施方式提供的一种可编程逻辑器件的加载方法,适用于具有多处理器的装置中、且一个处理器对应至少一个可编程逻辑器件,所述方法包括:
所述多处理器中的预定处理器获得被加载可编程逻辑器件的加载信息;所述被加载可编程逻辑器件为所述多处理器中除所述预定处理器之外的其它处理器对应的可编程逻辑器件;
所述预定处理器根据所述接收的加载信息对所述被加载可编程逻辑器件进行加载操作。
本发明实施方式还提供一种处理器,为具有多处理器装置中的处理器,所述装置中的一个处理器对应至少一个可编程逻辑器件,所述处理器包括:
第一模块,用于接收被加载可编程逻辑器件的加载信息;所述被加载可编程逻辑器件为所述多处理器中除所述第一模块所在处理器之外的其它处理器对应的可编程逻辑器件;
第二模块,用于根据所述第一模块接收的加载信息对所述被加载可编程逻辑器件进行加载操作。
本发明实施方式还提供一种具有多处理器的装置,所述装置包括:多个可编程逻辑器件、多个处理器,且一个处理器对应至少一个可编程逻辑器件,其中至少一个预定处理器的加载接口与除所述预定处理器之外的其它处理器对应的可编程逻辑器件的加载接口连接。
通过上述技术方案的描述可知,通过利用一个处理器为装置中其它处理器对应的可编程逻辑器件进行加载操作,在加载操作失败后,执行加载操作的处理器仍能够通过其对应的可编程逻辑器件从程序存储器中正常获取数据,使执行加载操作的处理器仍能够执行正常操作,如该处理器继续为可编程逻辑器件进行加载操作等,避免了执行加载操作的处理器无法正常启动的问题;从而提高可编程逻辑器件的加载可靠性。
附图说明
图1是现有技术中对可编程逻辑器件进行加载升级的示意图一;
图2是现有技术中对可编程逻辑器件进行加载升级的示意图二;
图3是现有技术中对可编程逻辑器件进行加载升级的示意图三;
图4是本发明实施方式的对可编程逻辑器件进行加载的原理示意图;
图5是本发明实施方式的对可编程逻辑器件进行加载的方法流程示意图;
图6是本发明实施方式的检测CPLD/EPLD成功完成加载的电路示意图。
具体实施方式
下面对本发明实施方式提供的可编程逻辑器件的加载方法进行说明。
本发明实施方式提供的加载方法适用于具有多处理器的装置中,例如可以适用于具有双处理器的装置,再例如可以适用于具有三个处理器的装置中,本发明实施方式不限制装置具有的处理器的个数。装置中的一个处理器可以对应一个可编程逻辑器件,也可以对应多个可编程逻辑器件,本发明实施方式同样不限制一个处理器对应的可编程逻辑器件的个数。可编程逻辑器件可以负责处理器与装置中的存储器之间的数据/地址解复用处理。本发明实施方式中的可编程逻辑器件可以为现有的多种可编程逻辑器件,例如可以为CPLD,也可以为EPLD。只要是可以进行加载的可编程逻辑器件均可,本发明实施方式不限制可编程逻辑器件的具体表现形式。
下面首先以多处理器中的一个处理器实现可编程逻辑器件的加载方法进行说明。为便于描述,在本实施方式中将这个实现可编程逻辑器件的处理器称为预定处理器。需要说明的是,预定处理器仅仅是为了描述清晰起见而采用的名称,只要是执行了本申请中描述的预定处理器执行的操作,不论是否为处理器冠以预定处理器的名称,均属于本发明要求保护的范围。
预定处理器接收被加载可编程逻辑器件的加载信息,该加载信息可以是用于加载升级的信息,也可以是其它加载信息,例如根据实际管理的需要加载信息可以是低于被加载可编程逻辑器件中当前加载版本的加载信息。也就是说,本发明实施方式中的加载信息用于更新可编程逻辑器件中的加载信息,并不一定是用于加载升级的加载信息。预定处理器接收到的加载信息可以是通过网络传输来的加载信息,也可以是通过其所在装置的本地端口接收到的加载信息。
预定处理器接收到的加载信息包括不是该预定处理器对应的可编程逻辑器件的加载信息,也就是说,预定处理器接收到的加载信息是其所在装置的多处理器中除该预定处理器之外的其它处理器对应的可编程逻辑器件的加载信息。举例来说,如果预定处理器所在的装置中包括3个可编程逻辑器件,即可编程逻辑器件1、可编程逻辑器件2和可编程逻辑器件3,而且,该预定处理对应可编程逻辑器件1、可编程逻辑器件2和可编程逻辑器件3对应的处理器不是预定处理器,则预定处理器接收到的加载信息可以是可编程逻辑器件2的加载信息、也可以是可编程逻辑器件3的加载信息、还可以是可编程逻辑器件2的加载信息以及可编程逻辑器件3的加载信息。
预定处理器在接收到加载信息后可以可选的将该加载信息存储在装置中的非易失存储器中,这里的非易失存储器即掉电后数据仍能够正常保存的存储器。非易失存储器可以是EEPROM,也可以是FLASH,还可以是NVRAM(NonVolatile Random Access Memory,非易失随机存储器),也就是说,只要是在掉电后不会丢失存储的加载信息、且预定处理器能够进行读写操作的存储器均可以成为本发明实施方式中的非易失存储器。非易失存储器可以位于预定处理器所在的处理***中,也可以独立于预定处理器所在的处理***。本发明实施方式可以将预定处理器所在处理***中的非易失存储器称之为预定处理器对应的程序存储器。预定处理器存储的加载信息可以用于被加载的可编程处理器件的再加载过程,也可以用于被加载的可编程处理器件加载信息的查询过程等等。
预定处理器在接收到加载信息后,或者预定处理器在接收到加载信息且存储了加载信息后,利用该加载信息对被加载可编程逻辑器件进行加载操作。预定处理器可以根据加载信息、采用现有的各种方法来进行加载操作。本发明实施方式不限制预定处理器根据上述接收到的加载信息进行加载操作的具体实现过程。
在上述加载过程中,存在加载失败的情况,例如装置异常的重新启动即复位、异常的掉电、装置死机等现象都会引起加载失败。在加载失败后,被加载的可编程逻辑器件可以输出状态指示信号,以指示加载失败;被加载的可编程逻辑器件也可以在加载成功后输出状态指示信号,以指示加载成功。也就是说,被加载的可编程逻辑器件可以仅在加载失败时输出状态指示信号,此时的状态指示信号仅用于表示加载失败,预定处理器可以在检测到状态指示信号时确定加载失败,并在预定时间间隔内未接收到状态指示信号时确定加载成功;被加载的可编程逻辑器件也可以仅在加载成功时输出状态指示信号,此时的状态指示信号仅用于表示加载成功,预定处理器可以在检测到状态指示信号时确定加载成功,在预定时间内没有接收到状态指示信号时确定加载失败;被加载的可编程逻辑器件也可以在加载成功时输出表示加载成功的状态指示信号,在加载失败时输出表示加载失败的状态指示信号,例如,预定处理器判断被加载的可编程逻辑器件输出的状态指示信号,在判断出状态指示信号的值为“0”时确定加载失败,在判断出状态指示信号的值为“1”时确定加载成功。被加载的可编程逻辑器件输出的状态指示信号可以直接传输至预定处理器的GPIO引脚,预定处理器可以通过软件来检测状态指示信号,并判断是否加载成功。本发明实施方式不限制状态指示信号的具体表现形式,也不限制预定处理器根据状态指示信号确定加载成功或失败的具体实现过程。
另外,被加载的可编程逻辑器件输出的状态指示信号也可以提供给预定处理器对应的可编程逻辑器件,预定处理器对应的可编程逻辑器件根据状态指示信号确定加载成功/失败,并通知预定处理器是否加载成功。预定处理器对应的可编程逻辑器件可以仅在加载失败时通知预定处理器,预定处理器对应的可编程逻辑器件也可以仅在加载成功时通知预定处理器,当然,预定处理器对应的可编程逻辑器件还可以在加载成功、加载失败时均通知预定处理器。预定处理器、预定处理器对应的可编程逻辑器件判断加载成功/失败的具体实现过程类似于上述实施方式中的描述,在此不再重复说明。
预定处理器在根据被加载的可编程逻辑器件输出状态指示信号的情况、或者其对应的可编程逻辑器件的通知判断出加载失败后,预定处理器可以从上述非易失存储器中请求并获得加载信息,然后,重新对被加载的可编程逻辑器件进行加载操作。当然,本发明实施方式也不排除预定处理器通过网络等请求并获得加载信息的技术方案。
预定处理器在根据其接收到的加载信息对被加载的可编程逻辑器件进行加载操作时,还可以考虑预定加载执行顺序。也就是说,当装置中的一个以上的处理器均接收到加载信息、且均需要对被加载的可编程逻辑器件进行加载操作时,需要根据预定加载执行顺序,逐个执行对被加载可编程逻辑器件的加载操作,即在一个预定处理器根据其自身接收的加载信息对被加载可编程逻辑器件进行加载操作、且成功加载后,再由另一个预定处理器根据其自身接收到的加载信息对被加载可编程逻辑器件进行加载操作,直到所有的预定处理器均成功完成加载操作。不同的预定处理器针对的被加载可编程逻辑器件可以不是同一个可编程逻辑器件。
本发明实施方式可以通过设置预定加载执行顺序信息来实现顺序加载,预定加载执行顺序信息可以体现出各处理器执行加载操作的顺序,例如,装置中有3个处理器,即处理器1、处理器2和处理器3;预定加载执行顺序信息可以为:处理器1优先、处理器2次优先、处理器3最后,即处理器1先对可编程逻辑器件2执行加载操作,处理器2其次对可编程逻辑器件3执行加载操作,处理器3最后对可编程逻辑器件1执行加载操作;如果三个处理器同时均接收到加载信息,则处理器1根据预定加载执行顺序信息对可编程逻辑器件2成功进行加载后,处理器2根据预定加载执行顺序信息、以及可编程逻辑器件2成功加载的信息再对可编程逻辑器件3执行加载操作,处理器3根据预定加载执行顺序信息、以及可编程逻辑器件3成功加载的信息再对可编程逻辑器件1执行加载操作。预定加载执行顺序信息可以体现为处理器的编号,也可以体现为其它形式的数据信息。本发明实施方式不限制预定加载执行顺序信号的具体实现方式。
预定加载执行顺序信息可以在某些情况下表示出某两个、或多个预定处理器具有相同的加载执行顺序,此时,具有相同加载执行顺序的预定处理器不应该再执行加载操作。即多个预定处理器的加载操作应该是先后执行的,而且应该在一个预定处理器成功执行完成后,再进行另一个预定处理器的加载操作。
下面以具有双处理器的装置为例、结合附图4、5、6对本发明实施方式提供的可编程逻辑器件的加载方法进行说明。
附图4为本发明实施方式的在具有双处理器的装置中,可编程逻辑器件即CPLD/EPLD的加载原理示意图。
图4中,具有双处理器的装置包括:两个处理器、两个CPLD/EPLD、以及两个EEPROM/FLASH。两个处理器即处理器0和处理器1。两个CPLD/EPLD即CPLD/EPLD0和CPLD/EPLD1。两个EEPROM/FLASH即EEPROM/FLASH0和EEPROM/FLASH1。处理器0通过CPLD/EPLD0进行数据/地址解复用后对EEPROM/FLASH0进行访问。处理器1通过CPLD/EPLD1进行数据/地址解复用后对EEPROM/FLASH1进行访问。处理器0的GPIO模拟JTAG接口,并通过模拟的JTAG接口与CPLD/EPLD1连接。处理器1的GPIO模拟JTAG接口,并通过模拟的JTAG接口与CPLD/EPLD0连接。
设定具有多处理器的装置接收到在线加载命令,具有多处理器的装置在接收到在线加载命令后,将CPLD/EPLD1的加载信息发送至处理器0,同时,将CPLD/EPLD0的加载信息发送至处理器1。处理器0接收CPLD/EPLD1的加载信息,处理器0接收的加载信息如用于加载升级的加载信息;处理器1接收CPLD/EPLD0的加载信息,处理器1接收的加载信息如用于加载升级的加载信息。处理器0可以将其接收到的加载信息存储在EEPROM/FLASH0中。处理器1可以将其接收到的加载信息存储在EEPROM/FLASH1中。
在处理器成功存储了加载信息后,开始执行CPLD/EPLD加载升级操作。具有双处理器的装置中的加载升级操作为:处理器0根据其接收到的加载信息、通过GPIO模拟的JTAG接口先执行CPLD/EPLD1的加载升级操作,CPLD/EPLD0根据CPLD/EPLD1输出的状态指示信号判断是否加载升级成功,如果CPLD/EPLD0判断出CPLD/EPLD1的加载升级操作成功完成,则处理器0的本次加载升级操作结束,如果CPLD/EPLD0判断出CPLD/EPLD1的加载升级操作失败,则通知处理器0;处理器0根据通知获知加载失败,则处理器0从EEPROM/FLASH0中获取加载信息,并再次通过GPIO模拟的JTAG接口执行CPLD/EPLD1的加载升级操作,直到加载升级成功或者加载次数达到预定次数;处理器1可以通过CPLD/EPLD1给出的状态指示信号判断出处理器0是否成功完成加载升级操作,处理器1在根据CPLD/EPLD1输出的状态指示信号判断出处理器0成功完成加载升级操作后,处理器1根据其接收到的加载信息、通过GPIO模拟的JTAG接口对CPLD/EPLD0进行加载升级操作;CPLD/EPLD1根据CPLD/EPLD0输出的状态指示信号判断是否加载升级成功,如果CPLD/EPLD1判断出CPLD/EPLD0的加载升级操作成功完成,则处理器1的本次加载升级操作结束、且具有多处理器的装置的加载升级操作结束;如果CPLD/EPLD1判断出CPLD/EPLD0的加载升级操作失败,则通知处理器1;处理器1根据通知获知加载失败,则处理器1从EEPROM/FLASH1中获取加载信息,并再次通过GPIO模拟的JTAG接口执行CPLD/EPLD0的加载升级操作,直到加载升级成功或者加载次数达到预定次数,具有多处理器的装置的加载升级操作结束。
从图4的描述中可以明确得知,由于每个处理器均是对另一个处理器对应的CPLD/EPLD进行加载升级的,因此,在一个处理器对另一个处理器对应的CPLD/EPLD加载升级过程中,执行加载升级操作的处理器对应的CPLD/EPLD处于正常工作状态,所以,即使出现异常现象导致CPLD/EPLD加载升级失败,执行加载升级操作的处理器仍能够正常工作,而且,处理器可以在加载升级失败后,从其对应的EEPROM/FLASH中获取加载信息,然后,再次进行加载升级操作,从而尽可能的避免了加载升级失败的现象,最终避免了处理器无法正常工作的现象,确保了具有多处理器的装置的可维护性、可用性以及可靠性。
附图5为本发明实施方式的在具有双处理器的装置中,可编程逻辑器件即CPLD/EPLD的加载方法流程示意图。
图5中,步骤500、具有双处理器的装置开始本次加载升级流程,到步骤510和步骤510’。需要说明的是,步骤510和步骤510’可以同时执行,也可以分先后顺序分别执行。
步骤510,处理器0获取用于CPLD/EPLD1加载升级的加载信息,处理器0执行将其获取的加载信息存储于EEPROM/FLASH0中的操作,到步骤520。
步骤520,处理器0判断其获取到的加载信息是否成功存储,如果没有成功存储,则到步骤510,重新执行将获取的加载信息存储于EEPROM/FLASH0中的操作;如果成功存储,则到步骤530。
步骤510’,处理器1获取用于CPLD/EPLD0加载升级的加载信息,处理器1执行将其获取的加载信息存储于EEPROM/FLASH1中的操作,然后,到步骤520’。
步骤520’,处理器1判断其获取到的加载信息是否成功存储,如果没有成功存储,则到步骤510’,处理器1重新执行将获取到的加载信息存储于EEPROM/FLASH1中的操作;如果成功存储,则到步骤530。
步骤530,CPLD/EPLD0和CPLD/EPLD1的加载信息均成功存储,处理器可以开始执行加载升级操作,到步骤540。
步骤540,处理器0执行CPLD/EPLD1的在线加载升级操作,到步骤550。
步骤550,处理器0根据CPLD/EPLD1输出的状态指示信号判断加载升级是否成功完成,如果加载升级失败,则到步骤540,处理器0根据加载信息再次执行CPLD/EPLD1的在线加载升级操作;如果加载升级成功,则到步骤560。
步骤560,处理器1执行CPLD/EPLD0的在线加载升级操作,到步骤570。
步骤570,处理器1根据CPLD/EPLD0输出的状态指示信号判断加载升级是否成功完成,如果加载升级失败,则到步骤560,处理器1根据加载信息再次执行CPLD/EPLD0的在线加载升级操作;如果加载升级成功,则到步骤580。
步骤580,具有双处理器的装置结束本次加载升级流程。
附图6是以一路CPU(处理器)串口心跳检测逻辑为例、一方处理器对应的CPLD/EPLD检测另一方处理器对应的CPLD/EPLD是否成功完成加载升级的实现电路示意图。
图6中,CPLD/EPLD输出的状态指示信号是一个周期性跳变信号,状态指示信号由被加载***的CPLD/EPLD提供给加载***的CPLD/EPLD,以进行检测。加载***的CPLD/EPLD检测被加载***的CPLD/EPLD发送来的状态指示信号,即对状态指示信号的跳变沿进行检测,计数器根据输入的时钟信号进行计数,如果检测到状态指示信号的跳变沿,则计数器清零,计数器重新开始计数;判断计数器是否溢出,即计数器的计数值是否达到预定值,如果计数器的计数值达到预定值,即在设定时间内状态指示信号没有发生跳变,则输出低电平0,如果计数器的计数值没有达到预定值,即在设定时间内状态指示信号发生跳变,则输出高电平1。加载***的CPLD/EPLD可以根据上述输出的低电平0判断出被加载***的CPLD/EPLD异常即加载升级失败,加载***的处理器需要重新对被加载***的CPLD/EPLD进行加载升级操作。
在上述实施方式中描述的处理器0和处理器1可以利用各自所在的电路板上固定的高电平信号、低电平信号来设定,也可以通过后台管理软件来分配哪个处理器为处理器0、哪个处理器为处理器1,即处理器的编号可以通过电平信号或者管理软件来设置。这里的设定处理器的编号即上述实施方式中描述的预定加载执行顺序信息。如果由于硬件故障或软件异常等问题使处理器编号相同,则处理器不进行CPLD/EPLD的加载升级操作,从而确保了两个处理器按照先后顺序依次进行加载升级操作,避免了两个处理器同时执行加载升级操作的情况。
下面对本发明实施方式提供的处理器进行说明。
本发明实施方式提供的处理器位于具有多处理器的装置中,该装置中的一个处理器至少对应一个可编程逻辑器件,这里的可编程逻辑器件的具体表现形式如上述方法实施方式中的描述。本发明实施方式提供的处理器包括第一模块和第二模块,该处理器还可以可选的包括第三模块。
第一模块用于接收被加载可编程逻辑器件的加载信息。第一模块接收到的上述加载信息为具有多处理器的装置中除第一模块所在处理器之外的其它处理器对应的可编程逻辑器件的加载信息。例如,如果装置中包括3个可编程逻辑器件,即可编程逻辑器件1、可编程逻辑器件2和可编程逻辑器件3,而且,这里描述的第一模块所在的处理器对应可编程逻辑器件1,则这里描述的第一模块接收到的加载信息可以是可编程逻辑器件2的加载信息、也可以是可编程逻辑器件3的加载信息、还可以是可编程逻辑器件2的加载信息以及可编程逻辑器件3的加载信息。
第一模块接收到的加载信息可以是用于加载升级的信息,也可以是其它加载信息。也就是说,第一模块接收到的加载信息是用于更新可编程逻辑器件中的加载信息,并不一定是用于加载升级的加载信息。第一模块接收到的加载信息可以是通过网络传输来的加载信息,也可以是通过其所在装置的本地端口接收到的加载信息。
第二模块用于根据第一模块接收的加载信息对被加载可编程逻辑器件进行加载操作。这里的被加载可编程逻辑器件为具有多处理器的装置中除第二模块所在处理器之外的其它处理器对应的可编程逻辑器件的加载信息。第二模块可以根据加载信息、采用现有的各种方法来进行加载操作。本发明实施方式不限制第二模块根据上述接收到的加载信息进行加载操作的具体实现过程。
本发明实施方式中的第一模块可以包括接收子模块和存储子模块。
接收子模块用于接收被加载可编程逻辑器件的加载信息,并输出。接收子模块接收的加载信息如上述实施方式中的描述。
存储子模块用于将接收子模块输出的加载信息存储在处理器所在装置的非易失存储器中。这里的非易失存储器可以是EEPROM,也可以是FLASH,还可以是NVRAM,而且非易失存储器可以位于该处理器所在的处理***中,也可以独立于该处理器所在的处理***。存储的加载信息的作用等如上述方法实施方式中的描述。
本发明实施方式中的第二模块可以包括顺序子模块和加载子模块。
顺序子模块用于获取预定加载执行顺序信息。预定加载执行顺序信息可以体现为处理器的编号,也可以体现为其它形式的数据信息。顺序子模块可以从其自身存储的信息中获取预定加载执行顺序信息,也可以从顺序子模块外部获取预定加载执行顺序信息。具体如上述方法实施方式中的描述。
加载子模块用于判断顺序子模块获取的预定加载执行顺序信息,如果判断出其所在的处理器为第一个执行加载的处理器,则根据第一模块接收的加载信息对被加载可编程逻辑器件进行加载操作并在成功加载后输出成功加载信息;否则,根据顺序子模块获取的预定加载执行顺序信息、以及其它处理器输出的成功加载信息执行加载的操作。顺序子模块获取的预定加载执行顺序信息可以在某些情况下表示出某两个、或多个预定处理器具有相同的加载执行顺序,加载子模块在判断出其所在处理器的加载执行顺序与其它处理器的加载执行顺序相同,则加载子模块不再执行加载操作。具体如上述方法实施方式中的描述。
第三模块用于检测是否加载失败,并在检测出加载失败后,通知第二模块,使第二模块请求加载信息并重新对被加载的可编程逻辑器件进行加载操作。第三模块可以根据被加载的可编程逻辑器件输出的状态指示信号判断是否加载失败,第三模块也可以根据其所在处理器对于的可编程逻辑器件的通知判断是否加载失败。第三模块判断是否加载失败的具体实现过程如上述方法实施方式中的描述。
第二模块在接收到第三模块的通知后,请求加载信息,并重新对被加载的可编程逻辑器件进行加载操作。第二模块可以向其所在装置中存储加载信息的非易失存储器请求加载信息,第二模块也可以通过网络请求加载信息;另外,第二模块可以通过判断加载次数与预定次数之间的大小关系决定是否退出本次加载过程,具体如上述方法实施方式中的描述。
下面对本发明实施方式提供的具有多处理器的装置进行描述。
本发明实施方式提供的具有多处理器的装置包括:多个可编程逻辑器件、多个处理器,且一个处理器对应至少一个可编程逻辑器件。该装置中的至少一个处理器为上述实施方式中描述的处理器。也就是说,该装置中可以有一个处理器为上述实施方式中描述的处理器,也可以有多个处理器为上述实施方式中描述的处理器,而且,该装置中的所有处理器均可以为上述实施方式中描述的处理器。该装置中的至少一个处理器的加载接口与除该处理器之外的其它处理器对应的可编程逻辑器件的加载接口连接,例如,第一处理器对应第一可编程逻辑器件,第二处理器对应第二可编程逻辑器件,则第一处理器的加载接口与第二可编程逻辑器件的加载接口连接,第二处理器的加载接口与第二可编程逻辑器件的加载接口连接。处理器通过其上的加载接口、被加载可编程逻辑器件的加载接口对被加载可编程逻辑器件进行加载操作。另外,第一处理器不仅可以通过加载接口与第二可编程逻辑器件的加载接口连接,还可以与第三可编程逻辑器件的加载接口连接,即一个处理器可以针对一个被加载可编程逻辑器件进行加载操作,也可以针对多个被加载可编程逻辑器件进行加载操作,具体如上述实施方式中的描述。在装置实施方式中不再对装置中的处理器进行重复说明。
通过上述实施方式的描述可知,通过利用一个处理器为装置中其它处理器对应的可编程逻辑器件进行加载操作,这样,在加载操作失败后,执行加载操作的处理器仍能够通过其对应的可编程逻辑器件从程序存储器中正常获取数据,使执行加载操作的处理器仍能够执行正常操作,如该处理器可以继续为可编程逻辑器件进行加载操作等,不但避免了执行加载操作的处理器无法正常启动的问题,而且,还提高了加载的成功率。通过存储加载信息,能够方便的对处理器的加载信息进行查询等管理,而且,在加载失败后需要再次执行加载操作时,可以方便的获得加载信息。通过使不同的处理器先后执行加载操作,即在一个处理器成功完成加载操作后再进行另一个处理器的加载操作,进一步避免了执行加载操作的处理器无法正常启动的问题,并进一步提高了加载的成功率。从而本发明实施方式提供的技术方案能够在支持可编程逻辑器件的在线加载的同时,提高可编程逻辑器件的加载可靠性,最终保证了具有多处理器的装置的可维护性、以及可靠性。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,本发明的申请文件的权利要求包括这些变形和变化。
Claims (11)
1、一种可编程逻辑器件的加载方法,其特征在于,适用于具有多处理器的装置中、且一个处理器对应至少一个可编程逻辑器件,所述方法包括:
所述多处理器中的预定处理器获得被加载可编程逻辑器件的加载信息;所述被加载可编程逻辑器件为所述多处理器中除所述预定处理器之外的其它处理器对应的可编程逻辑器件;
所述预定处理器根据所述接收的加载信息对所述被加载可编程逻辑器件进行加载操作。
2、如权利要求1所述的方法,其特征在于,所述多处理器中的预定处理器接收被加载可编程逻辑器件的加载信息的步骤包括:
所述多处理器中的预定处理器接收被加载可编程逻辑器件的加载信息,并将所述接收的加载信息存储在非易失存储器中。
3、如权利要求2所述的方法,其特征在于,所述非易失存储器包括:所述预定处理器所在处理***中的程序存储器、或者独立于所述预定处理器所在处理***的非易失随机存储器。
4、如权利要求1所述的方法,其特征在于,所述方法还包括:
所述预定处理器在判断出加载失败后,请求并获得所述加载信息,根据所述请求获得的加载信息重新对所述被加载的可编程逻辑器件进行加载操作。
5、如权利要求1或2或3或4所述的方法,其特征在于,所述多处理器中存在一个预定处理器、或者一个以上预定处理器;
当所述多处理器中存在一个以上预定处理器,所述预定处理器根据所述接收的加载信息对所述被加载可编程逻辑器件进行加载操作的步骤包括:
根据预定加载执行顺序在一个预定处理器根据其接收的加载信息对被加载可编程逻辑器件成功进行加载操作后,再进行另一个预定处理器进行加载的操作。
6、如权利要求5所述的方法,其特征在于,所述方法还包括:
在至少两个预定处理器具有相同预定加载执行顺序的情况下,禁止执行加载操作。
7、一种处理器,为具有多处理器装置中的处理器,所述装置中的一个处理器对应至少一个可编程逻辑器件,其特征在于,所述处理器包括:
第一模块,用于接收被加载可编程逻辑器件的加载信息;所述被加载可编程逻辑器件为所述多处理器中除所述第一模块所在处理器之外的其它处理器对应的可编程逻辑器件;
第二模块,用于根据所述第一模块接收的加载信息对所述被加载可编程逻辑器件进行加载操作。
8、如权利要求7所述的处理器,其特征在于,所述第一模块包括:
接收子模块,用于接收被加载可编程逻辑器件的加载信息,并输出;
存储子模块,用于将接收子模块输出的加载信息存储至所述装置的非易失存储器中。
9、如权利要求7或8所述的处理器,其特征在于,所述处理器还包括:
第三模块,用于检测是否加载失败,并在检测出加载失败后,通知第二模块,使第二模块请求加载信息并重新对所述被加载的可编程逻辑器件进行加载操作。
10、如权利要求7或8所述的处理器,其特征在于,所述第二模块包括:
顺序子模块,用于获取预定加载执行顺序信息;
加载子模块,用于判断顺序子模块获取的信息,如果判断出其所在的处理器为第一个执行加载的处理器,则根据所述加载信息对被加载可编程逻辑器件进行加载操作并在成功加载后输出成功加载信息;否则,根据所述顺序子模块获取的信息、以及其它处理器输出的成功加载信息执行加载的操作。
11、一种具有多处理器的装置,其特征在于,所述装置包括:多个可编程逻辑器件、多个如权利要求6或7或8或9所述的处理器,且一个处理器对应至少一个可编程逻辑器件,其中至少一个预定处理器的加载接口与除所述预定处理器之外的其它处理器对应的可编程逻辑器件的加载接口连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101795650A CN101458624B (zh) | 2007-12-14 | 2007-12-14 | 可编程逻辑器件的加载方法、处理器和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101795650A CN101458624B (zh) | 2007-12-14 | 2007-12-14 | 可编程逻辑器件的加载方法、处理器和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101458624A true CN101458624A (zh) | 2009-06-17 |
CN101458624B CN101458624B (zh) | 2012-05-30 |
Family
ID=40769500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101795650A Active CN101458624B (zh) | 2007-12-14 | 2007-12-14 | 可编程逻辑器件的加载方法、处理器和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101458624B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101853171A (zh) * | 2010-05-24 | 2010-10-06 | 福建星网锐捷网络有限公司 | 一种复杂可编程逻辑器件的在线升级方法及装置 |
CN109542522A (zh) * | 2018-11-02 | 2019-03-29 | 杭州迪普科技股份有限公司 | 一种fpga启动方法及装置 |
CN109918135A (zh) * | 2019-02-21 | 2019-06-21 | 新华三技术有限公司 | 一种cpld中的逻辑代码恢复方法及电子设备 |
CN112506172A (zh) * | 2020-12-07 | 2021-03-16 | 天津津航计算技术研究所 | 一种多cpld实时监测装置 |
CN112578723A (zh) * | 2020-12-07 | 2021-03-30 | 天津津航计算技术研究所 | 一种多余度cpld切换控制装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100442254C (zh) * | 2003-06-13 | 2008-12-10 | Ut斯达康(中国)有限公司 | 对多个可编程逻辑器件进行在线加载的方法和装置 |
CN100340983C (zh) * | 2005-07-18 | 2007-10-03 | 杭州华三通信技术有限公司 | 对非易失可编程逻辑器件在线升级的方法及装置 |
-
2007
- 2007-12-14 CN CN2007101795650A patent/CN101458624B/zh active Active
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101853171A (zh) * | 2010-05-24 | 2010-10-06 | 福建星网锐捷网络有限公司 | 一种复杂可编程逻辑器件的在线升级方法及装置 |
CN109542522A (zh) * | 2018-11-02 | 2019-03-29 | 杭州迪普科技股份有限公司 | 一种fpga启动方法及装置 |
CN109918135A (zh) * | 2019-02-21 | 2019-06-21 | 新华三技术有限公司 | 一种cpld中的逻辑代码恢复方法及电子设备 |
CN112506172A (zh) * | 2020-12-07 | 2021-03-16 | 天津津航计算技术研究所 | 一种多cpld实时监测装置 |
CN112578723A (zh) * | 2020-12-07 | 2021-03-30 | 天津津航计算技术研究所 | 一种多余度cpld切换控制装置 |
CN112506172B (zh) * | 2020-12-07 | 2022-09-30 | 天津津航计算技术研究所 | 一种多cpld实时监测装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101458624B (zh) | 2012-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6425094B1 (en) | Diagnostic cage for testing redundant system controllers | |
KR100570134B1 (ko) | 자체 치유 칩과 칩 사이의 인터페이스 | |
US6505317B1 (en) | System and method for testing signal interconnections using built-in self test | |
US11061665B2 (en) | System for online cascaded loading firmware based on boundary scan and method thereof | |
CN101458624B (zh) | 可编程逻辑器件的加载方法、处理器和装置 | |
US7568138B2 (en) | Method to prevent firmware defects from disturbing logic clocks to improve system reliability | |
US6933853B2 (en) | Apparatus and method for detecting and communicating interconnect failures | |
EP1095333B1 (en) | Fault detection in digital system | |
CN109710479B (zh) | 一种处理方法及第一设备、第二设备 | |
CA1208795A (en) | Data processing scan-art system | |
US8032791B2 (en) | Diagnosis of and response to failure at reset in a data processing system | |
US11094392B2 (en) | Testing of fault detection circuit | |
EP0145866A2 (en) | Test and maintenance system and method for a data processing system | |
US7970569B2 (en) | Apparatus and method for connection test on printed circuit board | |
JP5440673B1 (ja) | プログラマブルロジックデバイス、情報処理装置、被疑箇所指摘方法およびプログラム | |
US20040162978A1 (en) | Firmware developer user interface | |
US11500717B2 (en) | Method for detecting data storage system, device and data storage system | |
US11042443B2 (en) | Fault tolerant computer systems and methods establishing consensus for which processing system should be the prime string | |
CN111309529B (zh) | 依处理器信息完整测试处理器内通信链路的***及方法 | |
CN219915837U (zh) | 一种多连接端口电路及具有其的细胞自动加样检测*** | |
CN113064771B (zh) | 一种i2c链路检查方法、***、终端及存储介质 | |
CN114911653A (zh) | 一种接口检测方法、装置、电子设备、***及介质 | |
CN113407394A (zh) | 一种服务器ras功能测试的方法、装置、设备和介质 | |
JP3173648B2 (ja) | 故障検出方式 | |
CN116610481A (zh) | 故障诊断方法、装置、计算机设备、存储介质及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20231126 Address after: Room 1-9, 24th Floor, Unit 2, Building 1, No. 28, North Section of Tianfu Avenue, High tech Zone, Chengdu City, Sichuan Province, 610095 Patentee after: Sichuan Huakun Zhenyu Intelligent Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TR01 | Transfer of patent right |