固件更新方法和使用该方法更新固件的芯片的制作方法

文档序号:6582472阅读:240来源:国知局
专利名称:固件更新方法和使用该方法更新固件的芯片的制作方法
技术领域
本发明涉及一种固件更新方法和使用该方法更新固件的芯片。更具体地, 本发明涉及一种能够简化固件更新过程并且减少固件更新成本和时间的固件 更新方法以及使用该方法更新固件的芯片。
背景技术
目前,诸如网络集线器之类的设备中的很多芯片都包括微控制器单元
(MCU)以及存储用于该MCU的固件的只读存储器(ROM),该固件是在 对芯片进行流片(tape out)时固化在ROM中的。图1示出了这种传统芯片 的示意性框图。如图l所示,芯片100包括通过ROM总线彼此连接的ROM 101和MCU 102。当激活芯片100时,MCU 102读取存储在ROM 101中的 固件,然后利用该固件来执行操作。
在芯片使用过程中,为了修正硬件的缺陷或固件中的错误、给芯片增加 新的功能、或者进一步优化固件以提高芯片的性能,常常需要对固件进行更 新。然而,在传统芯片中,用于MCU 102的固件被固化在ROM 101中,不 能通过直接对ROM101进行擦除和写入来更新该固件,因此,往往需要对整 个芯片进行重新流片以便将ROM中的原始固件替换为更新的固件。这样的 固件更新过程较为复杂,且成本高、时间长。
因此,需要一种改进的固件更新方法和使用该方法更新固件的芯片,以 便简化固件更新过程,从而减少固件更新成本和时间。

发明内容
考虑到以上问题而做出了本发明。本发明的一个目的是提供一种芯片, 其能够在需要更新固件时,利用简化的固件更新过程来更新固件,而不需要 被重新流片,从而减少固件更新成本和时间。
本发明的另 一 目的是提供一种固件更新方法,其能够简化固件更新过程, /人而减少固件更新成本和时间。
4根据本发明的一个方面,提供了一种芯片,该芯片包括控制单元以及存
储用于控制单元的原始固件的第一存储器,并且还包括第二存储器;以及 主控器(master),用于检查是否存在用于控制单元的更新的固件,并且当存 在更新的固件时将该更新的固件写入第二存储器中以供控制单元使用。
根据本发明的另一方面,提供了一种固件更新方法,用于包括控制单元、 存储用于该控制单元的原始固件的第一存储器、第二存储器、以及主控器的 芯片,该方法包括以下步骤由主控器检查是否存在用于控制单元的更新的 固件;以及当存在更新的固件时,由主控器将该更新的固件写入第二存储器 中以供控制单元使用。
在根据本发明的实施例的芯片和固件更新方法中,当需要更新用于芯片 中的控制单元的固件时,将更新的固件直接写入与存储原始固件的只读存储 器不同的存储器中,使得控制单元能够利用该更新的固件来执行操作,由此 既达到了更新固件的目的,又消除了对芯片进行重新流片的需要,并且减少 了固件更新成本和时间。


通过结合附图对本发明的实施例进行详细描述,本发明的上述和其它目 的、特征、优点将会变得更加清楚,其中 图1示出了传统芯片的示意性框图; 图2是根据本发明的实施例的芯片的示意性框图; 图3是示出根据本发明的实施例的芯片更新方法的流程图。
具体实施例方式
下面将参照附图来描述根据本发明的实施例的芯片和芯片更新方法。 图2示出了根据本发明的实施例的芯片的示意性框图,该芯片可以是诸 如网络集线器之类的设备中的独立芯片、或者是这种独立芯片的一部分。如 图2所示,芯片200包括只读存储器(ROM) 201、主控器(master) 202、 静态随机存取存储器(SRAM) 203、多路复用器(MUX) 204以及微控制器 单元(MCU) 205。主控器202连接到位于芯片200外部的外部存储器400。 外部存储器400用于存储更新的固件,,该更新的固件用于替换芯片200 中的原始固件,以便修正硬件的缺陷或固件中的错误、给芯片200增加新的功能、或者进一步优化固件以提高芯片200的性能等。外部存储器400可以 是只读存储器或者其它可用来存储固件的存储器。根据需要,外部存储器400 可以位于芯片200外部的任何位置,优选地位于与芯片200相同的电路板上。 当需要更新芯片200中的原始固件(具体地说,用于MCU205的原始固件) 时,芯片制造商或者用户可以将所准备的更新的固件存储到外部存储器400 中。可以经由网络将该更新的固件下载到外部存储器400中,也可以将该更 新的固件在本地直接写入外部存储器400中。
ROM 201存储用于MCU 205的原始固件,即,在最初对芯片200进行 流片时固化在其中的用于MCU205的固件。当芯片200被激活时,ROM201 响应于MCU 205的读取固件的请求而将该原始固件输出到MUX 204。
主控器202检查是否存在用于MCU205的更新的固件,并且当确定存在 更新的固件时,将该更新的固件写入SRAM 203中。具体i也,当例如通过向 芯片200加电或施加使能信号而激活芯片200时,主控器203与外部存储器 400通信,并且确定在外部存储器400中是否存储了用于MCU 205的更新的 固件。如果存在更新的固件,则主控器202将该更新的固件从外部存储器400 写入SRAM 203中,然后设置用于控制MUX 204的输出的控制信号SEL,例 如,将SEL设为1,以表示存在更新的固件。在开始上述检查操作之前,主 控器203还向MCU 205施加复位信号RESET,以使其处于复位状态,从而 防止其执行固件读取操作。在完成所述检查操作之后,主控器202去除施加 到MCU 205上的复位信号,使得MCU 205退出复位状态并且开始读取固件。 在本实施例中,主控器202在每次激活芯片200时都自动地执行所述检查操 作以及随后的写入操作,然而本发明不限于此。也可以在激活芯片200之后, 主控器202在预定时刻或者以预定周期执行所述检查操作以及随后的写入操 作。或者,也可以额外地提供能够与该主控器202通信的用户接口,使得主 控器202可响应于用户经由该用户接口发出的指令而执行所述检查操作以及 随后的写入才喿作。主控器202可以用硬件、软件、固件、或者它们中的两个 或更多个的组合来实现,但优选地利用硬件来实现。
SRAM203用于存储由主控器202写入的更新的固件。此外,SRAM203 还响应于来自MCU 205的读取固件的请求而将存储在其中的所述更新的固 件输出到MUX204。 SRAM203的容量可以根据实际需要而变化,例如可以 为12K字节。应当认识到,尽管在这里使用了 SRAM来存储更新的固件,但这仅仅是说明性的,而不是限制性的。实际上,也可以使用快闪存储器(flash memory)或者其它能够用来存储固件的可读写存储器来存储所述更新的固 件。
MUX 204选择性地将从ROM 201输出的原始固件或从SRAM 203输出 的更新的固件"提供给MCU 205。具体地,当MUX 204从主控器202接收到 用于控制MUX 204的输出的控制信号SEL时,若SEL信号已经被设置,例 如,SEL信号被设为1,则表示存在更新的固件,MUX 204将从SRAM 203 输出的更新的固件提供给MCU 205 ,否则,若SEL信号未被设置,例如,SEL 信号为0,则表示不存在更新的固件,MUX204将从ROM201输出的原始固 件提供给MCU205。
MCU 205读取来自ROM 201的原始固件或者来自SRAM 203的更新的 固件,并且根据所读取的固件执行操作。具体地,当激活芯片200时,由于 主控器202将复位信号RESET施加到MCU 205 ,因此MCU 205进入复位状 态。当主控器202完成所述检查操作之后,主控器202去除施加到MCU205 的复位信号,使得MCU 205退出复位状态,并且向ROM 201和SRAM 203 二者发出读取固件的请求。如上所述,响应于该请求,ROM 201和SRAM 203 分别将原始固件和更新的固件输出到MUX 204,然后MUX 204根据从主控 器202接收到的控制MUX 204的输出的控制信号SEL而选择性地将所述原 始固件或更新的固件提供给MCU205。随后,MCU利用从MUX204提供的 这一固件来执行操作。
可以看到,在根据本发明的实施例的芯片200中,除了存储原始固件的 ROM 201以外,还设置了主控器202和可读写存储器203。当存在更新的固 件时,主控器202将该更新的固件写入可读写存储器203中,使得MCU205 利用该更新的固件而不是原始固件来执行操作,由此,达到了更新固件的目 的,而不需要对芯片200进行重新流片以更新ROM201中的固件。这简化了 固件更新过程,从而减少了固件更新成本和时间。
应当认识到,上面描述的芯片200的结构是示意性的,也可以根据需要 而设计其它结构。例如,可以将SRAM 203置于芯片200外部,并且利用高 速数据总线来将SRAM 203分别与主控器202、 MUX 204和MCU 205相连接。 此外,尽管在上文所述的芯片中,主控器202在执行所述检查搡作之前向MCU 205施加复位信号,并且在完成所述检查操作之后去除该复位信号,但这不是必需的,也可以不事先施加该复位信号,而是在完成所述检查操作并且确
定存在更新的固件之后再向MCU 205施加一复位信号,以使其开始读取固 件。
下面,将参照图3来描述根据本发明的实施例的固件更新方法。该固件 更新方法可以由图2所示的芯片200执行。
如图3所示,当激活芯片200时,在步骤S301中,主控器202向MCU 205施加复位信号RESET,以使其进入复位状态。接下来,在步骤S302中, 主控器202检查是否存在用于MCU 205的更新的固件。具体地,主控器202 与外部存储器400通信,并且确定在外部存储器400中是否存储了用于MCU 205的更新的固件。当在步骤S302中确定存在更新的固件时,在步骤S303 中,主控器202将该更新的固件从外部存储器400写入SRAM 403。
在执行了步骤S303之后,在步骤S304中,主控器202去除施加到MCU 205上的复位信号,并且设置向MUX204发送的用于控制MUX 204的输出的 控制信号SEL,例如,SEL信号被设为1。
另一方面,当在步骤S302中确定不存在更新的固件时,在步骤S305中, 主控器202去除施加到MCU 205上的复位信号,而不设置向MUX 204发送 的控制信号SEL,例如,SEL信号为O。
接下来,在步骤S306中,由于施加到MCU205上的复位信号被去除, 因此MCU205退出复位状态,并且向ROM 201和SRAM 203 二者发送读取 固件的请求。响应于该请求,ROM201将存储在其中的原始固件输出到MUX 204, SRAM 203将存储在其中的更新的固件输出到MUX 204。
随后,在步骤S307中,MUX 204选4奪性地将从ROM 201输出的原始固 件或从SRAM 203输出的更新的固件提供给MCU 205 。具体地,当MUX 204 从主控器202接收到已被设置的控制信号SEL时,例如,SEL信号被设为1, MUX 204将从SRAM 203输出的更新的固件提供给MCU 205。另 一方面,当 MUX204从主控器202接收到未被设置的控制信号SEL时,例如,SEL信号 为0, MUX 204将从ROM 201输出的原始固件提供给MCU 205。由此, MCU 205可以在主控器202的控制下,利用从ROM 201输出的原始固件或 从SRAM 203输出的更新的固件来#^行操作。
本领域技术人员应当认识到,上文所述的方法不是限制性的。例如,尽 管在上文所述的方法中,在步骤S301向MCU 205施加复位信号,并且在步骤S304或S305去除该复位信号,但这不是必需的,也可以不^l行这两个步 骤,而是在完成所述检查操作并且确定存在更新的固件之后再向MCU 205施 加一复位信号,以使其开始读取固件。
可以看到,在根据本发明的实施例的固件更新方法中,当存在更新的固 件时,主控器202将该更新的固件写入与只读存储器201不同的可读写存储 器203,使得MCU205能够利用该更新的固件来执行操作。因此,不再需要 像传统技术那样对芯片200进行重新流片,从而简化了固件更新过程,节省 了固件更新成本和时间。
应当注意,尽管在上文中以芯片为例描述了本发明,但是本发明的应用 不限于芯片,而是可以广泛应用于存在更新固件的需要的其它设备或器件。
尽管在这里示出和描述了本发明的示例性实施例,但是本领域技术人员 应当理解,在不背离权利要求及其等同物中限定的本发明的范围和精神的情 况下,可以对这些示例性实施例4故出各种形式和细节上的变化。
权利要求
1.一种芯片,包括控制单元以及存储用于控制单元的原始固件的第一存储器,其特征在于,该芯片还包括第二存储器;以及主控器,用于检查是否存在用于控制单元的更新的固件,并且当存在更新的固件时将该更新的固件写入第二存储器中以供控制单元使用。
2. 如权利要求l所述的芯片,其中,主控器通过与位于芯片外部的第三存储器通信并且确定在第三存储器中是否存储了所述更新的固件,来执行所述检查。
3. 如权利要求l之一所述的芯片,其中,主控器在每次激活芯片时都自 动地执行所述检查。
4. 如权利要求1之一所述的芯片,其中,在激活芯片之后,主控器在预 定时刻或以预定周期执行所述检查。
5. 如权利要求1之一所述的芯片,其中,主控器响应于用户的指令而执 行所述检查。
6. 如权利要求1所述的芯片,还包括复用器,用于当存在所述更新的固件时,响应于来自控制单元的读取固 件的请求而将存储在第二存储器中的更新的固件提供给控制单元。
7. —种固件更新方法,用于包括控制单元、存储用于该控制单元的原始 固件的第一存储器、第二存储器、以及主控器的芯片,该方法包括以下步骤由主控器检查是否存在用于控制单元的更新的固件;以及 当存在更新的固件时,由主控器将该更新的固件写入第二存储器中以供 控制单元使用。
8. 如权利要求7所述的固件更新方法,其中,主控器通过与位于芯片外 部的第三存储器通信并且确定在第三存储器中是否存储了所述更新的固件, 来执行所述检查。
9. 如权利要求7之一所述的固件更新方法,其中,主控器在每次激活芯 片时都自动地执行所述检查。
10. 如权利要求7之一所述的固件更新方法,其中,在激活芯片之后, 主控器在预定时刻或以预定周期执行所述检查。
11. 如权利要求7之一所述的固件更新方法,其中,主控器响应于用户 的指令而执行所述检查。
12. 如权利要求7所述的固件更新方法,还包括以下步骤 当存在所述更新的固件时,响应于来自控制单元的读取固件的请求而将存储在第二存储器的更新的固件提供给控制单元。
全文摘要
提供了一种固件更新方法和使用该方法更新固件的芯片。该芯片包括控制单元以及存储用于控制单元的原始固件的第一存储器,并且还包括第二存储器;以及主控器,用于检查是否存在用于控制单元的更新的固件,并且当存在更新的固件时将该更新的固件写入第二存储器中以供控制单元使用。所述芯片和固件更新方法能够简化固件更新过程,从而减少固件更新成本和时间。
文档编号G06F9/445GK101667133SQ20091020403
公开日2010年3月10日 申请日期2009年9月30日 优先权日2009年9月30日
发明者杰 丁, 瑾 赖 申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1