首页> 中国专利> 用于启动没有只读存储器的片上系统的方法、没有只读存储器的片上系统和耳机

用于启动没有只读存储器的片上系统的方法、没有只读存储器的片上系统和耳机

摘要

一种用于启动没有只读存储器(ROM)的片上系统(SoC)的方法,其包括以下步骤:通过SoC所包括的处理器(10)接收(S1)重置信号,通过SoC所包括的监控组件监控(S2)处理器与至少非易失性存储器(11)之间的连接(12),处理器与非易失性存储器两者都由SoC包括,在发生所述处理器通过连接首次读取访问(S3)所述非易失性存储器时,通过所述监控组件,检查(S4)响应于通过连接首次读取访问所返回的数据值(DV1)是否符合预设值,和如果所返回的数据值不同于所述预设值,通过所述监控组件,停止(55)所述处理器的操作。

著录项

  • 公开/公告号CN114830084A

    专利类型发明专利

  • 公开/公告日2022-07-29

    原文格式PDF

  • 申请/专利权人 AMS有限公司;

    申请/专利号CN202080088494.7

  • 发明设计人 迈克尔·勃姆;

    申请日2020-12-15

  • 分类号G06F9/4401;G06F15/78;

  • 代理机构北京柏杉松知识产权代理事务所(普通合伙);

  • 代理人孙静;刘继富

  • 地址 奥地利普伦斯塔滕

  • 入库时间 2023-06-19 16:08:01

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-07-29

    公开

    国际专利申请公布

说明书

本公开涉及片上系统(SoC)的领域。具体地说,它涉及也被称作无ROM的SoC(ROM-less SoC)的没有只读存储器(ROM)的SoC的领域。更具体地说,本申请涉及一种用于启动没有ROM的片上系统的方法、没有ROM的片上系统,和耳机。

随着集成电路技术的进步,可集成到集成电路芯片上的功能的数量增多。可将其上设置处理器、片上存储器和其它组件的集成电路芯片称作片上系统(SoC)设备。SoC设备可泛指包括封装在包装中的集成电路芯片或芯片布置的,并且其上设置至少一个处理器和片上存储器的任何芯片。片上存储器指安装在与处理器和可能地其它组件相同的芯片中的存储器设备。

在现有技术中,存在不同类型的SoC。一方面,SoC具有片上ROM和闪存存储器。另一方面,存在无ROM的SoC,其仅具有闪存存储器。在原始SoC(即直接在它们生产之后但在测试闪存存储器的内容之前)中,闪存存储器可处于未编程和因此未限定的状态。在闪存存储器中潜在地执行这样的未初始化的程序代码可能会导致不期望的行为,在最糟糕的情况中,这可能会禁止在生产之后的第一次测试期间编程闪存。对于该问题的一个已知的解决方法在于从片上引导ROM启动SoC的处理器,例如通过实施在ROM中的引导加载程序,其在执行处理器使用存储在闪存存储器中的指令之前验证闪存存储器的内容的有效性。然而,这样的解决方案不适用于无ROM的SoC。

因此可见,本公开的目的在于提供避免执行存储在SoC的闪存存储器中的未初始化的程序代码的一种用于启动没有ROM的SoC的方法和一种没有ROM的SoC,以及耳机。

通过独立权利要求的主题实现该目的。在从属权利要求中限定实施例和改进方案。

在一个实施例中,一种用于启动没有ROM的SoC的方法包括以下步骤:

通过SoC所包括的处理器,接收重置信号,

通过SoC所包括的监控组件,监控处理器与至少一个非易失性存储器之间的连接,处理器与非易失性存储器两者都由SoC包括,

在发生处理器通过连接首次读取访问非易失性存储器时,通过监控组件,检查响应于通过连接首次读取访问所返回的数据值是否符合预设值,和

如果所返回的数据值不同于预设值,通过监控组件,停止处理器的操作。

一旦处理器接收来自外部的重置信号,监控组件就启动操作并观察处理器与非易失性存储器之间的连接。当监控组件检测处理器首次读取访问存储器时,监控组件检查响应于首次读取访问所返回的数据值是否匹配预设值。在所返回的值不同于预设值、即期望值的情况中,监控组件停止处理器操作。

确定响应于首次读取访问所返回的数据值不同于预设值指示在非易失性存储器中存在未初始化的代码。因此,通过在这样的确定之后停止处理器操作,避免由SoC的处理器执行存储在非易失性存储器、例如闪存存储器中的未初始化的代码。由此,可充分利用由于消除ROM而具有减小的芯片面积、缩短的系统启动时间和缩短的测试时间的无ROM的SoC的优点。

除非另有说明,上文提供的术语的定义还适用于以下文本。

非易失性存储器也可被称作持久存储器。即使非易失性存储器断电,它仍保持其存储的内容。

SoC的处理器也可被称作微处理器或中央处理单元(CPU)。处理器可例如由ARM处理器实现。在此,启动的概念指直接在其生产之后,首次操作所述没有ROM的SoC(即无ROM的SoC)。

在一个改进方案中,通过监控组件,停止处理器操作包括通过监控组件丢弃所返回的数据值,以及,通过监控组件给处理器提供使得处理器停止操作的机器可执行指令。

在已经在首次读取访问期间检测到无效存储器内容的情况中,用暂停处理器的指令来替换所返回的数据值。由此确保禁止在处理器上执行非易失性存储器的无效代码。

在一个改进方案中,将处理器的首次读取访问寻址为非易失性存储器中的零地址。

因此,通过被引导到非易失性存储器中的零地址来辨识首次读取访问,并由监控组件来清楚地识别。

在一个实施例中,预设值代表由处理器使用的初始堆栈指针值。

对于SoC,惯用做法在于,在正常操作中响应于处理器的首次读取访问所返回的数据值是堆栈指针的初始化值。

在一个改进方案中,初始堆栈指针值等于SoC所包括的易失性存储器的最后一个字的地址。特别地,初始堆栈指针值等于0x2001FFFC。

如本领域技术人员已知的,每个SoC以及所述SoC都具有易失性存储器,例如随机访问存储器(RAM),其具有已知大小,例如128kB。在一个实施方式中,所述RAM被映射到处理器的存储器的限定地址。堆栈指针指向内置于SoC中的RAM存储器中的最后一个字。在一个示例性设计中,缺省堆栈指针初始化值是0x2001FFFC。

在一个改进方案中,所述方法还包括:

如果所返回的值与预设值一致,继续处理器的操作。

在所返回的值是正确的初始堆栈指针值的情况中,处理器继续操作。

所述方法确保当在其生产之后首次启动SoC时,禁止处理器执行可能在SoC的非易失性存储器中的未初始化、即未限定的随机代码。这不仅适用于具有值F的被擦除的存储器单元,而且更重要的,还适用于随机值。

在一个实施例中,没有ROM的SoC包括处理器、非易失性存储器、连接,和监控组件。连接被配置为连接处理器和至少非易失性存储器。处理器被配置为接收重置信号和实施通过连接至少一次读取访问非易失性存储器。监控组件被配置为监控处理器与非易失性存储器之间的连接,并在发生处理器首次读取访问非易失性存储器时,检查响应于通过连接的首次读取访问所返回的数据值是否符合预设值,并且如果所返回的数据值不同于预设值,停止处理器操作。

在从SoC外部接收到重置信号之后,处理器实施使用连接对非易失性存储器的首次读取访问。监控组件监控所述连接,并检测首次读取访问。它之后检查响应于首次读取访问所返回的数据值是否匹配预设值。如果它确定所返回的值不同于预设值,监控组件停止处理器操作。

监控组件由此在无ROM的SoC的处理器在其生产之后首次读取访问期间,辨识非易失性存储器中的无效代码。在这样的情况中,停止处理器进一步操作。由此禁止执行非易失性存储器中的无效和未初始化代码。

上述方法可实施在所要求保护的SoC中。

在一个改进方案中,连接被实现为处理器的指令端口与非易失性存储器之间的总线连接。

总线连接可以是点对点连接。总线可由此以基础的方式实现,仅具有一个从机和一个主机,没有仲裁和编码/解码。在利用ARM处理器来实现SoC的处理器的情况中,可将例如先进高性能总线(AHB)用作总线连接。可选地,总线具有多于一个从机和/或多于一个主机。

在一个改进方案中,非易失性存储器实现为闪存存储器。

闪存存储器内置于SoC中,并当监控组件确定所返回的值匹配预设值并且处理器操作继续时,在其生产之后的SoC首次启动过程中用固件映像来编程该闪存存储器。

在一个改进方案中,监控单元包括有限状态机和多路复用器组件。有限状态机被配置为在发生重置信号时启动操作,控制多路复用器组件,至少接收来自连接的所返回的数据值,评估从连接接收的所返回的数据值,并由此确定是否发生了处理器首次读取访问非易失性存储器和所返回的数据值是否符合预设值,并且如果确定发生了首次读取访问并且所返回的数据值不匹配预设值,有限状态机被配置为给多路复用器组件提供替换值。多路复用器组件被配置为接收替换值并从连接接收数据值,并且在有限状态机的控制下,通过连接给处理器提供要么从连接接收的所返回的数据值,要么替换值。

在所返回的数据值不匹配为堆栈指针的期望初始值的预设值的情况中,通过有限状态机和多路复用器组件,将替换值提供给处理器。反之,如果所返回的数据值是期望的初始堆栈指针值,则将所返回的数据值提供给处理器。

在一个改进方案中,替换值包括使得处理器暂停的机器可执行指令。

由此,响应于会提供无效代码的首次读取访问,处理器接收停止处理器操作的指令。所述机器可执行指令可(例如通过等待事件指令)让处理器休眠。

在一个改进方案中,处理器被配置为实施用于音频处理、尤其是噪音消除的计算。

由此,将SoC设计为在音频应用中使用,因此可用于音频处理,尤其是噪音消除。

在一个实施例中,耳机具有如上所述的SoC。

除了本领域技术人员已知的现有技术的组件,例如扬声器、前馈麦克风和误差麦克风外,耳机还利用如上所述的无ROM的SoC,例如用于实施噪音消除。耳机由此具有无ROM的SoC的优点,即减小的芯片面积、测试时间和系统启动时间,并且同时避免在固件映像无效的情况下,在内置于SoC中的处理器上执行固件。噪音消除还被称作主动降噪或环境降噪,这两者都缩写为ANC。ANC一般利用例如由SoC的处理器处理的环境噪音的录制,以生成抗噪音信号,该信号然后与有用音频信号组合,以在耳机的扬声器上播放。

在一个改进方案中,耳机被实施为入耳式耳机、贴耳式耳机或耳罩式耳机中的一个。

下文参照附图,使用示例性实施例,详细地解释所提出的用于启动没有ROM的SoC的方法、所提出的没有ROM的SoC,和所提出的耳机。在功能上相同或具有相同效果的组件和电路元件具有相同附图标记。当电路部件或组件在功能上彼此对应时,在以下附图中每幅中,不会重复说明它们。

其中:

图1示出所提出的用于启动没有ROM的SoC的方法的一个实施例;

图2示出所提出的没有ROM的SoC的第一实施例,

图3示出所提出的没有ROM的SoC的第二实施例,

图4示出所提出的用于启动没有ROM的SoC的方法的另一实施例,

图5示出所提出的耳机的一个实施例。

图1示出所提出的用于启动没有ROM的SoC的方法的一个实施例。该方法包括以下步骤:

在步骤S1中,通过由SoC所包括的处理器,接收重置信号,

在步骤S2中,通过由SoC所包括的监控组件,监控处理器与非易失性存储器之间的连接,处理器与非易失性存储器两者都由SoC包括,

如果在步骤S3中由监控组件确实检测到处理器通过连接对非易失性存储器的首次读取访问,在步骤S4中,通过监控组件,检查响应于通过连接的首次读取访问所返回的数据值是否符合预设值,和

如果所返回的数据值不同于预设值,在步骤S5中,通过监控组件,停止处理器操作。

通过如图1描绘的所提出的方法,避免在首次启动刚制造好并通过重置信号首次通电的SoC期间执行存储在无ROM的SoC的非易失性存储器中的无效代码。监控组件对于处理器的首次读取访问,监听在处理器与至少SoC的非易失性存储器之间延伸的连接,并侵入所述连接,以再次检查所返回的数据值是否符合预设值。在所返回的数据值不匹配预设值的情况中,通过监控组件,停止处理器操作,防止执行无效代码。

可选地,该方法还包括步骤S6,在该步骤中,在所返回的数据值与预设值一致的情况中,处理器继续操作。

图2示出所提出的没有ROM的SoC的第一实施例。SoC 100包括处理器10、非易失性存储器11、配置为连接处理器10和至少非易失性存储器11的连接12,和监控组件13。处理器10被配置为接收重置信号SR,并实施通过连接12对非易失性存储器11的至少一次读取访问。监控组件13被配置为监控处理器10与非易失性存储器11之间的连接12。详细地说,在发生处理器10对非易失性存储器11的首次读取访问时,监控组件13被配置为检测响应于通过连接12的首次读取访问所返回的数据值是否符合预设值。如果所返回的数据值不同于预设值,监控组件13被配置为停止处理器10操作。

在一个实施示例中,连接12被实现为连接处理器10的指令端口与非易失性存储器11的总线连接,该非易失性存储器被实现为闪存存储器并代表SoC的指令存储器。连接12因此可被称作处理器10的指令总线。

在一个示例性实施方式中,所述指令总线可根据AHB协议来操作。要么通过计数指令总线上的读取访问,要么通过检查所涉及的地址,来实施对处理器10的首次读取访问的确定。在使用ARM处理器来实施处理器10的情况中,第一指令总线访问从零地址发生。在利用ARM处理器的大多数应用中,符合由从闪存存储器加载的系统所返回的期望值的预设值指向也内置于SoC中的易失性存储器、RAM存储器的最后一个字。在一个示例性设计中,RAM根据处理器销售商的推荐存储器映射被映射到地址0x20000000,并具有128kB的大小。因此,为对于堆栈指针初始化的期望值的预设值是0x2001FFFC。监控组件13检查从零地址返回的值。如果该值不同于堆栈指针的期望初始化值,监控组件13停止处理器的进一步操作,由此避免执行碰巧包含在闪存存储器11中的无效代码。

图3示出所提出的没有ROM的SoC的第二实施例。图3的实施例与图2的实施例一致,并更详细地示出监控组件13的可行组件。监控组件13包括有限状态机131和多路复用器组件132。有限状态机131被配置为在发生重置信号SR时,启动操作。它还可操作为通过控制信号SP来控制多路复用器组件132。有限状态机131还可操作为至少接收来自连接12的所返回的数据值DV1,以评估所返回的数据值DV1并由此确定是否已经发生处理器10对非易失性存储器11的首次读取访问,和所返回的数据值DV1是否符合预设值。如果在有限状态机131中确定发生了首次读取访问并且所返回的数据值DV1不符合预设值,有限状态机131可操作为将替换值DV2提供给多路复用器组件132。多路复用器组件132被配置为接收来自有限状态机131的替换值DV2并接收来自连接12的所返回的数据值DV1。根据由有限状态机131提供的控制信号SP,多路复用器组件132使用连接12,将要么所返回的数据值DV1,要么替换值DV2,提供给处理器10。

由此,如果有限状态机131检测到所返回的数据值DV1不匹配预设值,有限状态机131将替换值DV2提供给多路复用器组件132并通过控制信号SP指令多路复用器组件132将所述替换值DV2提供给处理器10。替换值DV2包含例如将处理器10设置为休眠的机器可执行指令。在一个实施方式中,监控组件13以该方式用0x00010001替换之后的矢量获取,其中,尾随的1指示给定SoC处理器中的某代码,并用暂停处理器的指令,例如等待事件指令,替换来自地址0x00010000的指令获取。

图4示出所提出的用于启动没有ROM的SoC的方法的另一实施例。该实施例与以上参照图1所述的实施例一致,并可视为是之前参照图3所述的有限状态机的一个实施例。在步骤S1中,在接收到重置信号时,将称作闪存有效(FlashValid)的状态变量初始化为“未设定”,即闪存有效则具有“未设定”的值。闪存有效变量指示是否发生过首次读取访问和所返回的数据值是否符合预设值。如本领域技术人员已知的,这可使用指示两个位来实施。

在步骤S2中,监控处理器与非易失性存储器之间的连接,由此等待在所述连接上发生读取操作或读取访问。

在步骤S3中,当发生这样的读取操作时,检查闪存有效变量的值,以确定该读取操作是否实际上是发生的处理器对非易失性存储器的首次读取访问。在闪存有效变量的值是“未设定”的情况中,读取操作实际上是首次读取访问,接着执行步骤S4。在步骤S4中,检查为响应于通过连接的首次读取访问所返回的数据值的在此称为“返回值”的数据值是否符合预设值。如果该检查结果为“是”,继续处理器操作。在此,在步骤S61中,闪存有效变量被设定为“是”,并在步骤S62中,将从闪存存储器读取的数据值传输给处理器,这是因为所述值已经被确定为是有效的。在步骤S4中的检查结果是“否”,即响应于首次读取访问所返回的“返回值”不同于预设值,该方法进行停止处理器操作。详细地说,在步骤S51中,将闪存有效变量设定为“否”,并在步骤S52中,将替换值提供给处理器,这停止处理器操作。

而且,在闪存有效变量的值在步骤S3中被确定为“是”的情况中,方法直接进行步骤S62,将从闪存存储器读取的值发送到处理器,这是因为之前的读取操作不是首次读取访问,闪存存储器的内容已经在方法之前的迭代中得到批准。

在闪存有效变量的值在步骤S3中被确定为“否”的情况中,当前读取操作不是首次读取访问,闪存的内容已经被评估为是无效的。方法继续步骤S52,停止处理器的进一步操作。

图5示出所提出的耳机的一个实施例。耳机200包括SoC 100。SoC 100符合上述实施例中的一个,其中,处理器10专门配置为实施用于音频处理的计算。特别地,音频处理涉及噪音消除。

耳机200由此可作为入耳式耳机(也称为入耳耳机)、贴耳式耳机(也称为贴耳耳机),或耳罩式耳机(也称为包耳式耳机)中的一种,被实现成各种形式。入耳式耳机像耳塞那样佩戴。贴耳式耳机具有抵着耳朵的垫子,而耳罩式耳机具有包着耳朵的圆形或椭圆形耳垫。

要理解的是,关于任一实施例所述的任何特征可单独地或与其它所述特征组合地使用,也可与任何其它实施例或任何其它实施例的任何组合的一个或更多个特征组合地使用,除非描述为替代方案。而且,也可不偏离如在所附权利要求书中所限定的用于启动没有ROM的SoC的方法和没有ROM的SoC的范围地,利用上文中没有说明的等同和改动。

附图标记

10 处理器

11 非易失性存储器

12 连接

13 监控组件

131 有限状态机

132 多路复用器组件

100 没有ROM的SoC

200 耳机

SR、SP 信号

DV1、DV2 值

S1、S2、...S6 步骤

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号