允许动态系统配置和诊断的自引导装置的制作方法

文档序号:6413131阅读:92来源:国知局
专利名称:允许动态系统配置和诊断的自引导装置的制作方法
技术领域
本发明涉及计算机系统,尤其涉及计算机的重新配置和诊断。
与本发明相关的背景技术在计算机系统中,如设备驱动程序或其他专用应用程序之类的固件被储存在可擦写可编程只读存储器(EPROM)中。将可擦写可编程只读存储器用于此用途的原因在于,它们是非挥发性的(即断电后不会丢失储存的数据),而且它们允许根据需要改变和/或升级存储的固件。然而,要想擦去现有固件并编程写入新固件,必须使用特殊的设备将可擦写可编程只读存储器从主板的槽中取出后才能进行。
闪速存储器(即固态存储器)是一种正获得广泛支持以取代可擦写可编程只读存储器的新型技术,因为它和可擦写可编程只读存储器一样,也是非挥发性的。另一方面,和可擦写可编程只读存储器不同,闪速存储器允许系统处理器控制下的系统内升级。闪速存储器与其他可重写存储器技术的另一个差别在于,闪速存储器的编程过程只涉及到将二进制的1变为0,而其擦写过程只涉及到将0变为1,1是闪速存储器存储单元的缺省二进制值。由此可见,向闪速存储器写入固件的过程要求擦除和编程两步操作。例如在Brian Dipert和Markus Levy的《设计闪速存储器》(1994年第2版)中,可以找到关于闪速存储器技术的讨论。此处引用该文作为参考背景资料。


图1是先有技术计算机系统100的方框图,它允许在系统处理器的控制下对固件进行擦写和重编程。例如,固件可以是设备驱动程序,用于操作与计算机系统100相连接的外设。固件也可以是诊断程序,用于确定计算机系统100运行过程中是否存在错误,并确定错误的来源。进一步,固件还可以提供计算机系统100运行时需要的配置参数。
计算机系统100由CPU101、内存102、闪速存储器103和软驱104组成,它们都与总线105连接。在擦除操作中,从软驱104中的软盘中获得程序,并将其送往内存102储存。然后,CPU101执行储存在内存102中的指令代码,为闪速存储器103中的存储单元提供需要的电压,以执行擦除操作。类似地,在编程过程中,从软驱104中的软盘中获得程序,并将其送往内存102储存。然后,CPU101执行储存在内存102中的指令代码,为闪速存储器103中选定的存储单元提供需要的电压,将固件编程写入闪速存储器103中。
在先有技术中,要对闪速存储器103编程,被编程写入闪速存储器103的固件在现场必须有一份程序的拷贝。最好的情况是,由于将程序送往野外而产生的延迟可能会导致一些不便。最坏的情况是,在涉及到诊断程序的案例中,延迟会中断计算机系统100的使用,直到系统错误被检测出并被纠正。
那么就需要允许将固件远程动态写入可编程存储器的装置,系统和方法。
本发明概要由此,本发明提供了一种装置,系统和方法,允许将固件远程动态写入可编程存储器。
本发明使用一种允许将固件远程动态写入可编程存储器的设备,从而达到了上述要求。所述设备包括处理器、并-串转换器、第一内存以及通信设备。
所述并-串转换器与处理器连接。所述可编程存储器与处理器连接。所述第一内存与处理器连接。所述第一内存储存指令代码。当处理器执行指令代码时,为所述并-串转换器设置预先设定的通信参数。
所述通信设备与并-串转换器连接。所述通信设备将本装置与网络相连接。一旦该连接建立,通信设备将程序的指令代码从远程传输到本装置。程序一旦被处理器执行,就会将固件程序写入可编程存储器。
本方面的这些特征和优点,在仔细研究了下文中本发明优选实施例的详细描述及附图后,将会更加清楚。
附图的简要说明先有技术图1是先有技术计算机系统的方框示意图,所述计算机系统允许将固件编程写入计算机系统中的闪速存储器。
图2是根据本发明的计算机系统的方框示意图。
图3是储存在图2所示的引导只读存储器中的指令代码的流程图。
本发明的详细描述在以下的本发明详细描述中,提供了许多特定的细节,以便完整理解本发明。然而,了解技术的人士可以清楚地知道,无需这些特定细节也可以实现本发明。在其他实施例中,并未详细描述众所周知的方法、步骤、部件和电路,以免对本发明的各方面造成不必要的喧宾夺主的效果。
参照图2,该图是根据本发明的计算机系统200的方框示意图。所述计算机系统200包括中央处理单元201,引导只读存储器202,闪速存储器203,随机存取存储器204,以及通用异步接收/发送器(UART)205,这些部件通过总线206连接起来。异步接收/发送器200依次与通信设备205连接,后者将计算机系统200与通信网络208相连。
引导只读存储器202储存用于初始化异步接收/发送器200和通信设备205的指令代码。所述引导只读存储器202中的指令代码还用于从与通信网络208相连的远程数据源获取程序。所述随机存取存储器204储存通过网络从数据源获取的程序。储存在随机存取存储器204中的程序被中央处理单元201执行时,进行必要的擦除和编程过程,将固件写入闪速存储器203中。数据在中央处理单元201和异步接收/发送器205之间通过系统总线以并行方式传输。数据在异步接收/发送器205和通信设备207之间以串行方式传输。因此,异步接收/发送器205对进出计算机系统200的数据进行必要的串-并和并-串转换。通信设备207通过网络208在计算机系统200和其他设备之间传输数据。对本领域内普通技术人员应该清楚,通信设备205可以是任何能提供与局域网(LAN)和广域网(WAN)等通信网络的接口的数据通信电路。在优选实施例中,通信设备205是调制解调器。
图3是储存在启动只读存储器202中的算法的流程图。正如上文讨论的那样,算法中包括用于初始化异步接收/发送器205和通信设备207的指令代码。另外,该算法还包括用于获取程序的指令代码,该程序将来自与网络208相连的数据源的固件写入随机存取存储器204。
在优选实施例中,计算机系统200的中央处理单元201只在加电重启后的引导过程中,执行储存在只读存储器202中的算法。在步骤301,用预先确定的通信参数初始化异步接收/发送器205。优选地,以预先定义的协议bps(每秒位速率),bpc(每字符位数)以及奇偶模式来设置异步接收/发送器205,例如,每秒9600位,使用8位的数据字符以及无奇偶校验位。步骤301还可以包括让通信设备207直接与网络208上的数据源进行通信的指令代码。例如,通信设备207可能是一个调制解调器,可以指令其拨号与远程服务器连接。
然后,算法向数据源发出请求,要求其对程序指令代码的传输进行初始化(步骤302)。初始化完毕后,数据源开始向计算机系统200发送程序的指令代码。在优选实施例中,建立的方式是数据源发出的第1个数据字节后的2个数据字节含有程序指令代码的字节数。这样,引导只读存储器202中的算法对数据源发出的第1个数据字节的接收情况进行监视。该算法保持环路状态,直到第1个数据字节被接收。第1个数据字节被接收后,算法监视下2个数据字节的接收情况(步骤304)。然后,将计数器的长度计数器设置为数据传输的字节数。这样,字节数可用于监视数据传输的过程。
前3个数据字节后的数据是程序的指令代码。所以将前3个数据字节后的数据储存在随机存取存储器204中。同时,中央处理单元201使其地址指针指向随机存取存储器204的起始地址,以便在该内存地址储存后续的数据字节。在步骤307处,将从数据源获得的一个数据字节储存在地址指针指定的地址空间(步骤307)。计数器的长度计数器减1,以便保持与接收到的程序指令数据字节数一致(步骤308)。地址指针的内容增加到随机存取存储器204中用于储存下一个数据字节的下一个内存地址(步骤309)。然后算法计算出“校验和”,以确保接收到的数据无误。这样,每次接收到程序指令代码的数据字节,就算出一个新的“校验和”(步骤310)。
在步骤311,算法监视长度计数器,以确定是否已经接收到了所有与程序指令代码相关的数据字节。如果长度计数器的当前值大于0,则表示还有与程序指令代码相关的数据没有传输完毕,算法跳回步骤307处,继续接收数据字节并将其储存在随机存取存储器204中。否则,如果长度计数器的当前值为0,则表示已收到所有数据字节,然后算法接收在与程序指令代码相关的数据字节后发送的校验值“校验和”。所述校验值“校验和”被储存在指定的寄存器中(步骤312)。
算法执行冗余校验,确保已收到所有要传输的数据字节。其方法是,算法将计算出的“校验和”的值与步骤313处接收到的“校验和”的值进行比较。任何本领域内的普通技术人员都很清楚,在本发明的的范围内,还可以使用和考虑其他的冗余校验方法。
如果计算出的“校验和”值与接收到的“校验和”值不相等,则表示传输过程有误,算法发送“NACK”字节通知数据源重新发送(步骤316)。然后算法从步骤301重新开始。如果计算出的“校验和”值与接收到的“校验和”值相等,表示传输过程无误,算法发送“ACK”字节通知数据源传输过程结束(步骤314)。在后一种情况下,中央处理单元201开始执行驻留在随机存取存储器204中的程序。算法跳转至储存在随机存取存储器204中的程序的起始处,交出控制权(步骤315)。
这样,就描述了本发明的优选实施例,即一种允许从远程地点将固件动态写入可编程存储器的装置。以上所述仅是本发明的优选实施例,并非对本发明作任何限制,具体阐述详见随附的权利要求。
权利要求
1.一种装置,允许将网上远程地点的固件动态写入可编程存储器,所述装置包括处理器;与处理器连接的并-串转换器;与处理器连接的可编程存储器;与处理器连接的第一内存,所述第一内存存储指令代码,所述指令代码被处理器执行时设置并-串转换器的通信参数;以及与并-串转换器连接的通信设备,该通信设备连接本装置与网络的通信设备,将远程数据源的程序指令代码传输到本装置的通信设备,所述程序被处理器执行时,将固件程序写入可编程存储器。
2.根据权利要求1所述的装置,还包括与处理器连接的第二内存,所述第二内存存储程序的指令代码。
3.根据权利要求2所述的装置,其中所述的可编程存储器为闪速存储器。
4.根据权利要求2所述的装置,其中所述的第一内存为只读存储器。
5.根据权利要求2所述的装置,其中所述的第二内存为随机访问存储器。
6.根据权利要求2所述的装置,其中所述的通信设备为调制解调器。
7.根据权利要求2所述的装置,其中所述的并-串转换器的操作参数包括9600位/秒的速度参数,8位的字符数据,且无奇偶校验。
8.根据权利要求2所述的装置,其中所述的储存在第一内存中的指令代码被处理器执行时,建立与数据源的通信。
9.根据权利要求2所述的装置,其中所述的储存在第一内存中的指令代码被处理器执行时,进行冗余校验以确保传输的数据无误。
10.一个计算机系统,允许将网上远程地点的固件动态写入可编程存储器,其中包括一条总线;与总线连接的中央处理器;与总线连接的并-串转换器;与总线连接的可编程存储器;与总线连接的第一内存,所述第一内存储存指令代码,所述指令代码被中央处理器执行时,为并-串转换器设置通信参数;及与并-串转换器连接的通信设备,连接计算机系统与网络的通信设备,将远程数据源的程序指令代码传输到本计算机系统的通信设备,所述程序被处理器执行时,将固件程序写入可编程存储器。
11.根据权利要求10所述的计算机系统,还包括与处理器连接的第二内存,所述第二内存存储程序的指令代码。
12.根据权利要求11所述的计算机系统,其中所述的可编程存储器为闪速存储器。
13.根据权利要求11所述的计算机系统,其中所述的第一内存为只读存储器。
14.根据权利要求11所述的计算机系统,其中所述的第二内存为随机访问存储器。
15.根据权利要求11所述的计算机系统,其中所述的通信设备为调制解调器。
16.根据权利要求11所述的计算机系统,其中所述的并-串转换器的操作参数包括9600位/秒的速度参数,8位的字符数据,且无奇偶校验。
17.根据权利要求11所述的计算机系统,其中所述的储存在第一内存中的指令代码被处理器执行时,建立与数据源的通信。
18.根据权利要求11所述的计算机系统,其中所述的储存在第一内存中的指令代码被处理器执行时,进行冗余校验以确保传输的数据无误。
19.一种方法,用于将联网的远程地点的固件写入可编程存储器,该方法包括a)与远程的数据源建立连接;b)设置通信参数;c)将数据源的指令代码传输到计算机系统;d)将指令代码储存在内存中;及e)使用处理器,执行储存在内存中的指令代码,同时被执行的指令代码将固件程序写入可编程存储器。
20.根据权利要求20所述的方法,其中所述的可编程存储器为闪速存储器。
全文摘要
本发明提供了一种可远程对计算机系统进行动态配置和/或诊断的装置。计算机系统从数据源获取程序的指令代码。该指令代码被中央处理单元(CPU)执行时,可以进行必要的擦写和编程操作,将固件程序嵌入闪速存储器中。该固件程序可用于进行配置或诊断。
文档编号G06F9/445GK1238048SQ97199765
公开日1999年12月8日 申请日期1997年11月14日 优先权日1996年11月15日
发明者纳拉希玛·卢卡拉, 卡米斯瓦伦·西瓦马尼, 奥托·斯波林 申请人:塞瑞斯逻辑公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1