微控制器、存储模块及用于更新微控制器的韧件的方法与流程

文档序号:22499389发布日期:2020-10-13 09:30阅读:71来源:国知局
微控制器、存储模块及用于更新微控制器的韧件的方法与流程

本发明是关于一种微控制器、内存模块及用于更新微控制器的韧体的方法,尤其是关于一种可不断电进行韧体更新的微控制器、内存模块及方法。



背景技术:

存储模块可包含模块板及安装于模块板上的一些易失性存储组件。除存储组件以外的一些组件(例如光学组件、音频组件等)也可整合至模块板中。一或多个控制器(例如,微控制器单元microcontrollerunit,mcu)由此引入于存储模块上以控制这些组件。

由控制器运行的韧件可能需要更新以修正错误(其导致这些非存储组件的故障)或将特征添加至这些非存储组件。



技术实现要素:

本公开提供一种不需要关闭计算机电源以使对用户的中断最小化的韧件更新方案。

本公开的一些实施例提供一种微控制器单元(microcontrollerunit,mcu)。mcu包含处理单元及存储单元。存储单元经配置以包含开机载入程序区段。开机载入程序区段经配置以存储计算机程序码。所述计算机程序码在由所述处理单元执行时,使得所述mcu根据多个数据块及与所述数据块相关联的多个检查和执行第一检查机制,以在韧件更新阶段产生多个第一检查结果。

本公开的一些实施例提供一种存储模块。所述存储模块包含模块板、多个易失性存储组件及mcu。模块板具有接口。易失性存储组件安置于模块板上,且经由接口电连接至外部中央处理单元(centralprocessingunit,cpu)。mcu安置于模块板上,且经配置以:在开机载入程序模式下自外部cpu接收多个数据块及多个检查和,多个数据块中的每一个与来自所述多个检查和的指定检查和配对,其中数据块及检查和由外部cpu自经更新的韧件档案撷取;以及检查多个数据块中的每一个是否对应于指定检查和。

本公开的一些实施例提供一种用于更新mcu的韧件的方法。mcu经由信道与外部cpu以通信方式耦接。所述方法包含:外部cpu接收经更新的韧件档案;外部cpu通过执行经更新的韧件档案来获取多个数据块及与所述数据块相关联的多个检查和;mcu接收多个数据块中的第一数据块及多个检查和中指定给第一数据块的第一检查和;以及mcu根据第一数据块及第一检查和执行检查机制,以产生第一检查结果。

本公开的一些实施例提供一种用于初始化mcu的方法。mcu经由信道与外部cpu以通信方式耦接。所述方法包含:mcu根据应用程序区段中的应用程序数据及数据区段中的应用程序检查和执行第一检查机制,以产生第一检查结果;当第一检查结果正确时,mcu进入应用程序模式;当第一检查结果不正确时,mcu进入开机载入程序模式;以及当mcu处于开机载入程序模式下时,执行所提及的更新mcu的韧件的方法。

附图说明

结合附图阅读以下详细描述会最佳地理解本公开的各方面。应注意,各种特征可能未按比例绘制。事实上,可出于论述清楚起见,而任意地增大或减小各种特征的尺寸。

图1为根据本公开的一些实施例的包含经更新韧件提供器及经更新韧件接收器的韧件更新环境的框图。

图2为根据本公开的一些实施例的包含经更新韧件提供器、用户终端及计算机可读媒体的韧件更新环境的框图。

图3为说明根据本公开的一些实施例的存储模块与母板之间的连接的连接图。

图4a及图4b为展示根据本公开的一些实施例的微控制器单元中的如果干功能区块的框图。

图5为展示根据本公开的一些实施例的用于韧件初始化及更新的方法的流程图。

图6为根据本公开的一些实施例的处理经更新韧件档案的示意图。

图7为展示根据本公开的一些实施例的用于韧件初始化及更新的方法的流程图。

图8为展示根据本公开的一些实施例的用于韧件初始化及更新的方法的流程图。

图9为根据本公开的一些比较实施例的存储模块。

具体实施方式

以下揭示内容提供用于实施所提供的主题的不同特征的许多不同实施例或实例。下文描述组件及配置的特定实例以简化本公开。当然,这些组件及配置仅为实例且不意欲为限制性的。在本公开中,在以下描述中提及第一特征形成于第二特征上方或上可包含第一特征与第二特征直接接触地形成的实施例,且还可包含额外特征可在第一特征与第二特征之间形成,使得第一特征与第二特征可能不直接接触的实施例。另外,本公开可在各种实例中重复附图标号及/或字母。此重复是出于简化及清楚的目的,且本身并不指示所论述的各种实施例及/或配置之间的关系。

在下文更详细地论述本公开的实施例。然而,应了解,本公开提供可在广泛多种特定情境中体现的许多适用的概念。所论述特定实施例仅为说明性的且并不限制本公开的范围。

此外,为了易于描述,例如“在……之下”、“在……下方”、“在……上方”、“上部”、“下部”、“左侧”、“右侧”及其类似术语的空间相对术语可在本文中用于描述一个元件或特征与另一(或多个)元件或特征的如图式中所说明的关系。除图式中所描绘的定向以外,空间相对术语意欲涵盖装置在使用或操作中的不同定向。设备可以其它方式定向(旋转90度或处于其它定向),且本文中所使用的空间相对描述词可同样相应地进行解译。应理解,当元件被称为“连接至”或“耦接至”另一元件时,所述元件可直接连接至或耦接至另一元件,或可存在介入元件。

阐述本公开的广泛范围的数值范围及参数为近似值,且可尽可能精确地报告特定实例中阐述的数值。然而,一些数值可含有由各别测试量测值中发现的标准差必然引起的某些误差。此外,如本文中所使用,术语“约”通常意谓在给定值或范围的±10%、±5%、±1%或±0.5%内。替代地,所属领域的技术人员认为,术语“约”意谓在平均值的可接受标准误差内。除在操作/工作实例中以外,或除非以其它方式明确指定,否则数值范围、量、值及百分比(例如,本文中所揭示的材料数量、持续时间、温度、操作条件、量的比率等)中的所有应理解为在所有情况下由术语“约”修饰。因此,除非有相反指示,否则本公开及所附权利要求书中所阐述的数值参数为可变化的近似值。至少,应根据所报导的有效数位的数字且通过应用一般舍入技术理解各数值参数。范围可在本文中表现为自一个端点至另一端点或在两个端点之间。除非另外指定,否则本文中所揭示的所有范围包含端点。术语“大体上共面”可指沿着同一平面处于数微米(μm)内(例如,沿着同一平面处于10μm内、5μm内、1μm内或0.5μm内)的两个表面。在称数值或特性“大体上”相同时,所述术语可指所述值处于所述值的平均值的±10%、±5%、±1%或±0.5%内。

一些组件可整合至(dynamicrandomaccessmemory,dram)模块中以提供额外功能(例如,视觉效果、音频效果、功率管理等)。微控制器单元(microcontrollerunit,mcu)也并入至dram模块中以控制这些组件。

参看图1,其为根据本公开的一些实施例的包含经更新韧件提供端11及经更新韧件接收端13的韧件更新环境的框图。经更新韧件接收端13包含通信模块131、中央处理单元(cpu)132及包含mcu135的存储模块133。通信模块131、cpu133及存储模块133安置于母板139上,且由总线130电耦接。在此韧件更新环境中,在经更新韧件提供端11与经更新韧件接收端13之间建立网络连接10以用于传输相关数据。将在下文中进一步描述所述元件之间的交互作用。

在一些实施例中,当经更新韧件110经开发且分配就绪时,经更新韧件提供端11可将经更新韧件110经由网络连接10传输至经更新韧件接收端13。另一方面,经更新韧件接收端13的通信模块131接收经更新韧件110。接着,在经更新韧件接收端13接收经更新韧件110之后,经更新韧件接收端13的cpu132可预处理更新韧件110,且将更新韧件110转送至存储模块133的mcu135。因此,mcu135可由经更新韧件110更新mcu135的韧件。

应特别了解,在一些实施例中,通信模块可为网络数据传输器及网络数据接收器的组合,或用于传输网络数据及接收网络数据的电路的组合。然而,此类描述不意欲限制本公开的硬件实现实施例。

参看图2,其为根据本公开的一些实施例的包含经更新韧件提供端21、经更新韧件装置23、用户终端25及计算机可读媒体27的韧件更新环境的框图。经更新韧件装置23包含接口231、cpu232及包含mcu235的存储模块233。接口231、cpu233及存储模块233安置于母板239上,且由总线230电耦接。将在下文中进一步描述所述元件之间的交互作用。

在一些实施例中,当经更新韧件210经开发且分配就绪时,经更新韧件210可首先记录于计算机可读媒体27中。随后,经更新韧件提供端21将具有经更新韧件210的计算机可读媒体27提供至用户终端25。在用户终端25获得具有经更新韧件210的计算机可读媒体27之后,经更新韧件装置23的接口231可用于自计算机可读媒体27撷取经更新韧件210。接着,在经更新韧件装置23撷取经更新韧件210之后,经更新韧件装置23的cpu232可预处理更新韧件210,并将更新韧件210转送至存储模块233的mcu235。因此,mcu235可由经更新韧件210更新mcu235的韧件。

应特别了解,在一些实施例中,计算机可读媒体可实施为非暂时性电子产品,例如只读存储器(read-onlymemory,rom)、快闪存储器、软盘、硬盘、光盘(compactdisc,cd)、数位光学光盘(digitalversatiledisc,dvd)、蓝光光盘(blueraydisc,bd)或任何其它具有相同功能的存储媒体。接口可为i/o端口或用于接收计算机可读媒体的数据读取设备。然而,此类描述不意欲限制本公开的硬件实现实施例。

参看图3,其为说明根据本公开的一些实施例的母板339上的存储模块333与cpu332之间的连接的连接图。存储模块333包含具有接口337的模块板334、安置于模块板334上的mcu335及安置于模块板334上的多个易失性存储组件u1至u8。存储模块333经由接口337附接至母板339,且mcu335经由接口337与母板339上的cpu332交换数据。将在下文中进一步描述所述元件之间的交互作用。

在一些实施例中,当mcu335进入开机载入程序模式时,mcu335可进入更新过程。因此,mcu335自cpu332接收经更新韧件档案310的多个数据块及多个检查和。多个数据块中的每一个与多个检查和的指定检查和配对。接着,mcu335检查每一数据块是否对应于指定检查和。当每一数据块对应于指定检查和时,数据块经验证且作为数据块的集合的经更新韧件档案310因此经验证。因此,mcu335可由经更新韧件档案310更新并进入应用程序模式。另一方面,当有一个数据块未对应于指定检查和时,数据块的传输可能不完整或数据块在传输期间偶然更改或损坏。因此,mcu335可保持在开机载入程序模式中且重新检查每一数据块是否对应于指定的数据块。

在一些实施例中,mcu335可经由接口337及系统管理总线(systemmanagementbus,smbus)或集成电路间(inter-integratedcircuit,iic)总线330与母板339上的cpu332通信。在一些实施例中,存储模块333包含串行存在检测(serialpresencedetect,spd)单元336,且smbus或iic总线330可用于spd单元336与cpu332通信。在一些实施例中,mcu335共用通信信道,例如spd单元336与cpu332之间的smbus或iic总线330。由于smbus或cii总线330将多个装置或模块连接至母板339,因此前述多个装置或模块可经由smbus或cii总线330同时发送或接收数据。然而,smbus或cii总线330一次仅可允许一个装置或模块将数据发送或接收至母板339/自母板339发送或接收数据,因此,故障或不完整数据传输可必然在smbus或cii总线330与母板339上的cpu332之间发生。为了减少此传输困难,尤其在使用smbus或cii总线330作为通信信道时,数据传输的精确性可通过一次传输一对数据块及指定检查和来提高,如将于本公开的图5至图8中所论述。

应特别了解,在一些实施例中,易失性存储组件u1至u8可包含dram的存储单元。接口337可为与外围组件互连(peripheralcomponentinterconnect,pci)或外围组件高速互连(peripheralcomponentinterconnectexpress,pci-e、pcie)相容的接口。然而,此类描述不意欲限制本公开的硬件实现实施例。

参看图4a,其为展示根据本公开的一些实施例的mcu435中的功能块的框图。mcu435包含处理单元435p及存储单元435m。存储单元435p可包含开机载入程序区段4354。开机载入程序区段4354存储计算机程序码pg。将在下文中进一步描述所述元件之间的交互作用。

在一些实施例中,当计算机程序码pg由处理单元435p执行时,使得mcu435根据多个数据块411及与所述数据块相关联的多个检查和412执行第一检查机制pg1,以在韧件更新期间产生多个第一检查结果。换句话说,当mcu435处于开机载入程序模式下时,mcu435根据数据块411及检查和412执行第一检查机制pg1以产生第一检查结果,且检查第一检查结果对于更新韧件而言是否全部正确。

参看图4b,其为展示根据本公开的一些实施例的mcu435中的详细功能块的框图。存储单元435p可进一步包含应用程序区段4350及数据区段4352。应用程序区段4350存储应用程序数据4350a。数据区段4352存储应用程序数据4350a的信息4352a及应用程序检查和4352b。将在下文中进一步描述所述元件之间的交互作用。

在一些实施例中,应用程序数据4350a可包含mcu435的应用程序韧件。应用程序数据4350a的信息4352a可包含应用程序韧件的版本、应用程序韧件的大小及应用程序韧件的存储器地址。应用程序检查和4352b可为基于应用程序数据4350a而产生的检查和数据。

应注意,在一些实施例中,应用程序检查和4352b的产生可通过将应用程序数据4350a输入检查和函数来实施。详细地说,检查和函数可与散列函数、指纹、随机化函数或密码散列函数有关。因此,在将应用程序数据4350a输入检查和函数中时,对应于应用程序数据4350a的应用程序检查和4352b导出为检查和函数的输出。因此,由于应用程序数据4350a与应用程序检查和4352b之间的相关性,应用程序检查和4352b可用于验证应用程序数据4350a是否尚未偶然更改或损坏。

开机载入程序区段4354存储用于mcu435的计算机程序码pg以在不同阶段执行不同检查机制。在一些实施例中,当mcu435经激活时mcu435处于初始化阶段,且计算机程序码pg由处理单元435p执行以用于根据应用程序数据4350a及应用程序检查和4352执行第二检查机制pg2,以产生第二检查结果。特定来说,由于应用程序检查和4352b为应用程序数据4350a的检查和数据,因此处理单元435可检查应用程序检查和4352b是否对应于应用程序数据4350a,并产生第二检查结果。

在一些实施例中,当第二检查结果正确时,即,当应用程序检查和4352b对应于应用程序数据4350a时,处理单元435p控制mcu435进入应用程序模式。因此,对应于应用程序数据4350a的应用程序检查和4352b可指示应用程序数据4350a可能尚未偶然更改或损坏。因此,mcu435可进入应用程序模式。在一些实施例中,当第二检查结果不正确时,即,当应用程序检查和4352b未对应于应用程序数据4350a时,处理单元435p控制mcu435进入开机载入程序模式。因此,未能对应于应用程序数据4350a的应用程序检查和4352b可指示应用程序数据4350a可能已偶然更改或损坏。因此,mcu435可进入开机载入程序模式以更新应用程序数据4350a。

在一些实施例中,当正经更新时,mcu435处于更新阶段,且计算机程序码pg由处理单元435p执行以根据数据块411及指定给所述数据块411的检查和412执行第一检查机制pg1,以产生第一检查结果。特定来说,当mcu435处于更新阶段时,处理单元435p首先接收数据块411及检查和412。由于一个检查和412指定给一个数据块411,因此处理单元435p可检查检查和412是否分别对应于数据块411,并产生第一检查结果。

在一些实施例中,当数据块411及检查和412的第一检查结果正确时,即,当检查和412分别对应于数据块411时,处理单元435p控制mcu435自开机载入程序模式进入应用程序模式。因此,对应于数据块411的检查和412可指示,用于更新mcu435的数据块411的传输已完成且所接收的数据块411经验证。因此,mcu435可经更新且接着进入应用程序模式。

在一些实施例中,当第一检查结果中的一个不正确时,即,当数据块411的一个数据块411a未对应于检查和412中指定给数据块411a的一个检查和412a时,处理单元435p控制mcu435保持在开机载入程序模式。因此,未能对应于指定检查和412a的一个数据块411a可指示,用于更新mcu435的数据块411a的传输中的一个不完整或数据块411a可在传输期间偶然更改或损坏。因此,mcu435可保持在开机载入程序模式。此外,mcu435可重新撷取数据块411a及检查和412a以用于重新产生对应检查结果,且基于前述操作再次检查对应检查结果的正确性。

本公开的一些实施例包含一种用于韧件初始化及更新的方法,且其流程图展示于图5中。一些实施例的方法用于mcu(例如,前述实施例的mcu)中,且mcu经由信道(例如,前述实施例的smbus或iic总线)与外部cpu(例如,前述实施例的母板的cpu)通信。方法的详细操作如下。

mcu执行操作s501以根据存储于mcu的应用程序区段中的应用程序数据及存储于mcu的数据区段中的应用程序检查和执行检查机制以产生检查结果。在此实施例中,应用程序检查和应对应于应用程序数据。mcu执行操作s502以检查所述检查结果是否正确。换句话说,在操作s502中,mcu检查应用程序检查和是否对应于应用程序数据。

在一些实施例中,当检查结果正确时(即,当所述对应用程序检查和及应用程序数据对应时),mcu执行操作s503以进入应用程序模式。在一些实施例中,当检查结果不正确时(即,当所述对应用程序检查和及应用程序数据不对应时),mcu执行操作s504以进入开机载入程序模式。mcu执行操作s505以基于前述实施例执行韧件更新。

本公开的一些实施例包含一种用于韧件初始化及更新的方法,且其流程图展示于图7中。一些实施例的方法用于mcu(例如,前述实施例的mcu)中,且mcu经由信道(例如,前述实施例的smbus及iic总线)与外部cpu(例如,前述实施例的母板的cpu)通信。方法的详细操作如下。

在由经更新韧件档案更新mcu之前,更新韧件档案可由外部cpu处理以导出数据块及检查和对,如图6中所示。随后,mcu执行操作s701以进入开机载入程序模式。mcu执行操作s702以经由信道接收经更新韧件档案的一对数据块i及检查和i。在一些实施例中,经更新韧件档案包含n个数目的数据块及与n个数目的数据块相关联的n个数目的检查和,且检查和i指定给数据块i,其中i等于1至n。mcu执行操作s703以对所述对数据块i及检查和i执行检查机制,以产生检查结果i。mcu执行操作s704以确定检查结果i是否正确。换句话说,在操作s704中,mcu检查检查和i是否对应于数据块i。

在一些实施例中,当检查结果i正确时(即,当所述对数据块i及检查和i对应时),mcu执行操作s705以确定数据块i是否为最末数据块。如果数据块i不为最末数据块,则mcu执行操作s706以将值1添加至i,且对mcu执行操作s702以接收下一对数据块及指定检查和并执行后续操作。如果数据块i经确定为最末数据块,则mcu执行操作s707以由经更新韧件档案更新mcu的韧件,所述经更新韧件档案可为所述对数据块及指定检查和的集合。mcu执行操作s708以在mcu的韧件更新之后进入应用程序模式。

在一些实施例中,当检查结果i在操作s704中经确定为不正确时(即,当所述对数据块i及检查和i不对应时),直接对mcu执行操作s702以再次接收所述对数据块i及检查和i并执行后续操作。

在一些实施例中,可指示mcu在更新韧件之前进入开机载入程序模式。详细地说,当外部cpu经由母板的通信模块自经更新韧件提供端撷取经更新韧件档案时,外部cpu可指示mcu进入开机载入程序模式并准备更新韧件。

在一些实施例中,当检查结果i在操作s704中经确定为不正确时,视情况mcu执行操作s709(由虚线表示)以通知外部cpu重新发送经更新韧件档案的数据块i及检查和i。

本公开的一些实施例包含一种用于韧件初始化及更新的方法,且其流程图展示于图8中。一些实施例的方法用于mcu(例如,前述实施例的mcu)中,且mcu经由信道(例如,前述实施例的smbus及iic总线)与外部cpu(例如,前述实施例的母板的cpu)通信。方法的详细操作如下。

类似地,在由经更新韧件档案更新mcu之前,更新韧件档案可由外部cpu处理以导出数据块及检查和对,如图6中所示。随后,mcu执行操作s801以进入开机载入程序模式。mcu执行操作s802以经由信道接收经更新韧件档案的一对数据块i及检查和i。在一些实施例中,经更新韧件档案包含n个数目的数据块及与n个数目的数据块相关联的n个数目的检查和,且检查和i指定给数据块i,其中i等于1至n。mcu执行操作s803以对所述对数据块i及检查和i执行检查机制,以产生检查结果i。mcu执行操作s804以确定检查结果i是否正确。换句话说,在操作s804中,mcu检查检查和i是否对应于数据块i。

在一些实施例中,当检查结果i正确时(即,当所述对数据块i及检查和i对应时),mcu执行操作s805以确定数据块i是否为最末数据块。如果数据块i不为最末数据块,则mcu执行操作s806以将值1添加至i,且对mcu执行操作s802以接收下一对数据块及指定检查和并执行后续操作。

在一些实施例中,如果数据块i为最末数据块,mcu执行操作s807以对经更新韧件档案执行总检查机制,以产生总检查结果。mcu执行s808以确定总检查结果是否正确。换句话说,在操作s808中,mcu检查总检查和是否对应于经更新韧件档案。

在一些实施例中,当总检查结果正确时(即,当所述对经更新韧件档案及总检查和对应时),mcu执行操作s809以由经更新韧件档案更新mcu的韧件,所述经更新韧件档案为所述对数据块及指定检查和的集合。mcu执行操作s810以在mcu的韧件更新之后进入应用程序模式。

在一些实施例中,当总检查结果不正确时(即,当经更新韧件档案及总检查和不对应时),mcu执行操作s811以将i值重设为1,且对mcu执行操作s802以接收第一对数据块及指定的检查和并执行后续操作。

在一些实施例中,当检查结果i在操作s804中经确定为不正确时(即,当所述对数据块i及检查和i不对应时),直接对mcu执行操作s802以再次接收所述对数据块i及指定的检查和i并执行后续操作。

参看图9,其为展示存储模块的比较实施例。存储模块包含mcu903、插座、跳线器或用于外部连接的连接器901,以及一些存储器u1、u2、u3、u4、u5、u6、u7及u8。

大体而言,如果存储模块由于mcu903中发现的任何物理或硬件损害而出故障,则将旧mcu替换为另一mcu(例如,图9中未展示的新的或良好mcu)可为解决此问题的解决方案中的一个。

即使存储模块由于软件或韧件问题而出故障,具有经更新或相对较新版本的软件或韧件的另一mcu亦可用于替换mcu903。然而,插座、跳线器或连接器901可为解决前述问题提供一种选项。举例来说,连接器901可接收信号或命令以更新实施于mcu903中的软件或韧件。在更新之前,存储模块驻存的电子装置(例如,个人计算机、笔记本电脑、移动电话等)必须关闭或断电以取出或拔出存储模块。随后,存储模块必须发送至服务提供端以现场更新。关闭电子装置及运送存储模块可对用户造成不便。此外,存储模块(例如,连接器901与mcu903之间的电连接的电路布局)上占据相对较大空间或面积的连接器901可能会不利地影响存储模块的小型化。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1