1.本发明涉及芯片领域,特别涉及一种芯片及其启动方法。
背景技术:2.在设计芯片电路的时候,芯片的启动是非常重要的一环,芯片启动包括给芯片电路上电、载入芯片启动所需要的基本固件等。
3.在目前的芯片设计中,大多启动方式是利用一次性存储器和可擦除存储器来启动芯片,其中一次性存储器先验证可擦除存储器中的启动固件有效性,而后再跳转至可擦除存储器运行,对于此种启动方式而言,由于芯片流片之后一次性存储器中的固件无法修改,若一次性存储器存在固件问题,则无法正常启动芯片,而且此种启动方式的启动速度较慢。
技术实现要素:4.本发明的主要目的是提出一种芯片及其启动方法,旨在解决背景技术中所提到的问题。
5.为实现上述目的,本发明提出一种芯片,包括一级启动模块、二级启动模块、可擦除存储器以及随机存取存储器,所述一级启动模块与所述二级启动模块连接,所述可擦除存储器用于存储所述二级启动模块的启动固件及所述芯片的启动固件;在所述芯片上电时,所述一级启动模块用于从所述可擦除存储器中读取所述二级启动模块的启动固件以及所述芯片的启动固件,并将所述二级启动模块的启动固件以及所述芯片的启动固件写入所述随机存取存储器,并唤醒所述二级启动模块;所述二级启动模块响应于接收到所述一级启动模块的唤醒指令,基于所述随机存取存储器中对应的启动固件完成所述二级启动模块的初始化;所述二级启动模块在完成初始化后,还用于基于所述随机存取存储器中的所述芯片的启动固件完成所述芯片的初始化。
6.在本技术实施例中,所述二级启动模块的启动固件及所述芯片的启动固件均包括描述符,所述一级启动模块还用于,基于所述描述符从所述可擦除存储器内读取所述二级启动模块的启动固件及所述芯片的启动固件。
7.在本技术实施例中,还包括总线模块和多路选择器,所述一级启动模块和所述二级启动模块均通过所述多路选择器与所述总线模块连接,所述可擦除存储器以及所述随机存取存储器均与所述总线模块连接;在所述一级启动模块将所述二级启动模块的启动固件以及所述芯片的启动固件写入所述随机存取存储器,并唤醒所述二级启动模块后,所述一级启动模块还用于向所述多路选择器发送启动选择信号,以使所述多路选择器基于所述启动选择信号,将所述芯片的控制权移交至所述二级启动模块。
8.在本技术实施例中,所述二级启动模块预设有指令集,当所述芯片的参数更新时,所述二级启动模块还用于基于所述指令集对所述芯片的启动固件进行相应的参数配置。
9.在本技术实施例中,所述指令集预设有重启指令,当所述芯故障时,所述二级启动模块还用于向所述一级启动模块发送重启指令。
10.在本技术实施例中,当所述芯片挂载从机设备时,基于所述二级启动模块对所述从机设备进行控制及访问。
11.在本技术实施例中,所述一级启动模块为dma控制器,所述二级启动模块为微控制器。
12.本技术还提出一种芯片启动方法,包括:响应于芯片上电,唤醒预设的一级启动模块;基于所述一级启动模块从预设的可擦除存储器中读取预设的二级启动模块的启动固件以及所述芯片的启动固件,并将所述二级启动模块的启动固件以及所述芯片的启动固件写入预设的随机存取存储器,其中,所述二级启动模块的启动固件以及所述芯片的启动固件预先存储在所述可擦除存储器内;唤醒所述二级启动模块,基于所述随机存取存储器内的所述二级启动模块的启动固件完成初始化;利用初始化后的二级启动模块基于所述随机存取存储器内所述芯片的启动固件启动所述芯片。
13.在本技术实施例中,所述二级启动模块的启动固件以及所述芯片的启动固件均包括描述符,所述一级启动模块基于所述描述符从所述可擦除存储器内读取所述二级启动模块的启动固件及所述芯片的启动固件。
14.在本技术实施例中,在所述一级启动模块将所述二级启动模块的启动固件以及所述芯片的启动固件写入所述随机存取存储器,并唤醒所述二级启动模块后,所述方法还包括:基于所述一级启动模块向预设的多路选择器发送启动选择信号;利用所述多路选择器,基于所述启动选择信号,将所述总线模块的控制权移交至所述二级启动模块;将所述一级启动模块调整为休眠模式。
15.在本技术实施例中,所述二级启动模块预设有指令集,在所述芯片运行状态下,当所述芯片的运行参数更新时,基于所述指令集对所述芯片的启动固件进行相应的参数配置。
16.在本技术实施例中,所述指令集中预设有重启指令,在所述芯片运行状态下,当所述芯片运行故障时,基于所述指令集向所述一级启动模块发送重启指令。
17.在本技术实施例中,响应于接收到从机设备挂载请求,基于所述二级启动模块对所述从机设备进行控制及访问。
18.本发明提供的技术方案,通过设置可擦除存储器,可以将芯片的启动固件预先储存在可擦除存储器,设置具有较高的读写速度的一级启动模块,在芯片上电启动时,可以从可擦除存储器内快速读取芯片的启动固件,并将其快速储存在随机存取存储器内,然后再由二级启动模块基于芯片的启动固件完成芯片的初始化,由于一级启动模块的读写速度较快,故而可以提升芯片的启动速度;另外,当芯片更新、参数更改、运行错误时,可以基于二级启动模块自身的编程能力,进行相应的参数修改或者复位启动,提高了芯片运行时参数
配置的灵活性,减少了芯片的配置重启次数,同时不占用芯片主处理器的资源。
附图说明
19.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
20.图1为本发明的芯片一实施例中的架构图;图2为本发明的芯片从机端的从机设备的架构图;图3为本发明的芯片启动方法一实施例的流程图。
21.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
22.下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本技术更加透彻和完整,并且能够将本技术的范围完整地传达给本领域的技术人员。
23.本领域技术人员知道,本发明的实施方式可以实现为一种装置、设备、方法或计算机程序产品。因此,本技术可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
24.根据本发明的实施方式,提出了一种芯片及其启动方法。
25.示例性装置参照图1对本技术示例性实施方式的一种芯片进行说明,该芯片包括:包括一级启动模块、二级启动模块、可擦除存储器以及随机存取存储器,所述一级启动模块与所述二级启动模块连接,所述可擦除存储器用于存储所述二级启动模块的启动固件及所述芯片的启动固件;在所述芯片上电时,所述一级启动模块用于从所述可擦除存储器中读取所述二级启动模块的启动固件以及所述芯片的启动固件,并将所述二级启动模块的启动固件以及所述芯片的启动固件写入所述随机存取存储器,并唤醒所述二级启动模块;所述二级启动模块响应于接收到所述一级启动模块的唤醒指令,基于所述随机存取存储器中对应的启动固件完成所述二级启动模块的初始化;所述二级启动模块在完成初始化后,还用于基于所述随机存取存储器中的所述芯片的启动固件完成所述芯片的初始化。
26.在本技术实施例中,一级启动模块具有数据读写功能,比如可以为dma控制器等,二级启动模块具有编程功能,比如一些小型的mcu、cpu等微控制器等,可擦除存储器可以为闪存、sd卡、eeprom等具有可擦除存储功能的外部存储设备,随机存取存储器可以为ram,或者其他支持随机存储读写功能的存设备。
27.参照图1,在本技术实施例中,芯片上电后,通过一级启动模块的启动接口向其发送启动信号,此时一级启动模块被唤醒,唤醒后的一级启动模块能够读取预先储存在可擦
除存储器内的二级启动模块的启动固件,以及芯片的启动固件,并将二级启动模块的启动固件,以及芯片的启动固件储存到随机存取存储器。在本技术实施例中,可以将一级启动模块、可擦除存储器以及随机存取存储器通过直接存储器访问的方式进行设置,将可擦除存储器的地址设为源地址,将随机存取存储器的地址设为目的地址,并通过一级启动模块可以实现将二级启动模块的启动固件及芯片的启动固件快速储存到随机存取存储器内。一级启动模块将二级启动模块的启动固件及芯片的启动固件快速储存到随机存取存储器内后,随即向二级启动模块发送唤醒指令,二级启动模块收到唤醒指令后,开始工作,二级启动模块首先可以基于随机存取存储器内相应的启动固件进行初始化,待初始化之后,由二级启动模块完成芯片的启动固件的写入,从而完成芯片电路的初始化,即完成芯片的启动。
28.本技术实施例中,通过设置一级启动模块和二级启动模块,其中一级启动模块具有较高的读写速度,可以将二级启动模块的启动固件和芯片的启动固件从可擦除存储器中快速的读取并储存到随机存取存储器内,而后二级启动模块进行初始后就可以对芯片进行启动,从而提高了芯片的启动速度。
29.在本技术实施例中,所述二级启动模块的启动固件及所述芯片的启动固件均包括描述符,所述一级启动模块还用于,基于所述描述符从所述可擦除存储器内读取所述二级启动模块的启动固件及所述芯片的启动固件。其中,二级启动模块的启动固件及所述芯片的启动固件是预先被储存在可擦除存储器内的,在储存之前可以预先对二级启动模块的启动固件和芯片的启动固件分别设置描述符,一级启动模块在读取时,可以基于二级启动模块的启动固件和芯片的启动固件各自的描述符进行读写,从而可以保证一级启动模块读写二级启动模块的启动固件及芯片的启动固件的准确性。
30.如图1所示,在本技术实施例中,该芯片还设有总线模块和多路选择器,所述一级启动模块和所述二级启动模块均通过所述多路选择器与所述总线模块连接,所述可擦除存储器以及所述随机存取存储器均与所述总线模块连接;在所述一级启动模块将所述二级启动模块的启动固件以及所述芯片的启动固件写入所述随机存取存储器,并唤醒所述二级启动模块后,所述一级启动模块还用于向所述多路选择器发送启动选择信号,以使所述多路选择器基于所述启动选择信号,将所述芯片的控制权移交至所述二级启动模块。其中,可以预先设置在一级启动模块将二级启动模块的启动固件和芯片的启动固件储存到随机存取存储器后,向多路选择器发送启动选择信号,并将多路选择器设置为:在收到一级启动模块的启动选择信号后,仅将二级启动模块发送的控制指令输出,从而在主机端将控制权切换到二级启动模块;此时还可以令一级启动模块进行休眠,停止数据读写,直到芯片重启时,再通过一级启动模块的启动接口再向一级启动模块发送唤醒指令,从而可以在一定程度上降低芯片的功耗。在另一实施例中,一级启动模块的还可以通过总线模块向二级启动模块发送唤醒指令,本技术实施例对于一级启动模块直接唤醒二级启动模块,还是通过总线模块唤醒二级启动模块不做限定。
31.在本技术实施例中,所述二级启动模块预设有指令集,当所述芯片的参数更新时,所述二级启动模块还用于基于所述指令集对所述芯片的启动固件进行相应的参数配置。如图1、图2所示,其中,二级启动模块具有编程功能,比如一些小型的mcu、cpu等微控制器。芯片启动成功后,一级启动模块已经进入休眠状态,而二级启动模块仍处于运行的状态,通常情况下,从机端还会搭载控制寄存器和状态寄存器,那么芯片启动后仍处于运行状态的二
级启动模块就可以通过状态寄存器来监控芯片的运行状态,以及通过控制寄存器对芯片进行参数修改。
32.比如在一实施例中,当芯片发生错误时,二级启动模块通过状态寄存器可以及时获悉芯片此时处于错误状态,那么此时二级启动模块就可以根据预设的错误类型对芯片进行及时处理。比如可以在指令集中预设的复位指令,当二级处理模块判断此时错误类型需要复位时,二级启动模块向一级启动模块发送复位指令,进行及时的复位,避免芯片长时间停止工作。
33.又比如,当芯片参数更新时,原本与芯片更新前相匹配的控制寄存器内的值也需要进行相应的修改,此时则可以通过二级启动模块直接对控制寄存器中的值进行相应的修改,以与更新后的芯片相匹配。
34.在另一实施例中,当芯片在运行过程中需要更新芯片的关键参数时,也可以通过二级启动模块直接对已经烧录好的芯片固件的参数进行更改,而无需在可擦除存储器内对芯片的启动固件进行修改,然后再重新烧录,配置更加灵活方便,不仅不需要在可擦除存储器中进行更改然后重新存储,而且配置过程不需要占用芯片电路中的主处理器或协处理器。
35.在另一实施例中,当芯片自身参数更新后,与之匹配的控制寄存器内的值也需要进行相应的修改,此时,可以通过二级启动模块基于预先设置的指令集中的指令,更改控制寄存器中相应的值,从而改变芯片电路的运行,以使其与芯片更新后的参数相适应。
36.本技术实施例中,通过设置二级启动模块,对于芯片错误、芯片更新、参数更改等负载较小的工作,都可以直接通过二级处理模块进行。与现有通过芯片的主处理器或者协处理器进行相比,本技术实施例中,不需要占用芯片电路中的主处理器或协处理器,仅仅依赖二级启动模块自身预先设置的指令集即可完成,可以保证芯片的主处理器和协处理器主要运算不被打断,始终处于高效的工作状态。而且上述负载较小的工作均由二级启动模块完成,也使芯片配置更加的灵活,不仅合理的分配了芯片运行时的负载,而且减少了二级启动模块不必要的空闲,提高了二级启动模块的利用率。
37.如图1、图2所示,在本技术实施例中,在该芯片的从机端还可以挂载更多的从机设备,当所述芯片挂载从机设备时,基于所述二级启动模块对所述从机设备进行控制及访问。如图2所示,从机设备除了可以为存储单元之外,还可以为gpio、串口、计时器、watchdog等设备,在挂载从机设备时,可以通过二级启动模块对这些从机设备进行控制及访问。比如,挂载gpio,并通过二级启动模块控制访问gpio,可以输出芯片的运行状态;又比如,挂载串口,并通过二级启动模块进行控制和访问,可以输出一些串口打印信息;又比如,挂载watchdog,并通过二级启动模块进行控制及访问,可以防止芯片启动时卡死;又比如,挂载计时器,并通过二级启动模块进行控制及访问,可以表征芯片的启动运行时间。
38.本技术实施例中,从机端可以包含多种设备,除了有储存关键数据的对应的存储设备,二级启动模块具有编程控制功能,使得本芯片启动装置相对传统方案具有更强大的控制能力而不仅仅是数据搬运功能,还支持从机端的其他从机设备处灵活的挂载,并通过二级启动模块对其进行控制和访问。本技术实施例不仅可以灵活的扩展从机设备,而且当在从机端挂载从机设备时,通过二级启动模块进行访问的控制,能够实时监控芯片的启动过程及运行状态,而且不会占用芯片的主处理器和协处理器。
39.本技术实施例中的芯片,通过设置具有较高读写速度的一级启动模块,因此在芯片上电启动时,一级启动模块可以从可擦除存储器内快速读取预先存储的芯片的启动固件,并快速写入随机读取存储器内,以供二级启动模块基于芯片的启动固件,完成芯片的初始化工作,从而提升了芯片的启动速度;另外,当芯片更新、参数更改、运行错误时,可以基于二级启动模块自身的编程能力,进行相应的参数修改或者复位启动,提高了芯片运行时参数配置的灵活性,减少了芯片的配置重启次数,同时不占用芯片主处理器的资源。
40.示例性方法请结合参照图3,本示例性实施方式提出一种芯片启动方法,包括如下步骤:步骤s100:响应于芯片上电,唤醒预设的一级启动模块。
41.步骤s200:基于所述一级启动模块从预设的可擦除存储器中读取预设的二级启动模块的启动固件以及所述芯片的启动固件,并将所述二级启动模块的启动固件以及所述芯片的启动固件写入预设的随机存取存储器,其中,所述二级启动模块的启动固件以及所述芯片的启动固件预先存储在所述可擦除存储器内。
42.步骤s300:唤醒所述二级启动模块,基于所述随机存取存储器内的所述二级启动模块的启动固件完成初始化;步骤s400:利用初始化后的二级启动模块基于所述随机存取存储器内所述芯片的启动固件启动所述芯片。
43.本技术中的芯片启动方法,可以运用到如示例性装置中的芯片中,步骤s100-s400的具体实施方法可以参照示例性装置的各个实施例中,在此不一一赘述。
44.在本技术实施例中,所述二级启动模块的启动固件以及所述芯片的启动固件均包括描述符,所述一级启动模块基于所述描述符从所述可擦除存储器内读取所述二级启动模块的启动固件及所述芯片的启动固件。
45.在本技术实施例中,在所述一级启动模块将所述二级启动模块的启动固件以及所述芯片的启动固件写入所述随机存取存储器,并唤醒所述二级启动模块后,所述方法还包括:基于所述一级启动模块向预设的多路选择器发送启动选择信号;利用所述多路选择器,基于所述启动选择信号,将所述总线模块的控制权移交至所述二级启动模块;将所述一级启动模块调整为休眠模式。
46.在本技术实施例中,所述二级启动模块预设有指令集,在所述芯片运行状态下,当所述芯片的运行参数更新时,基于所述指令集对所述芯片的启动固件进行相应的参数配置。
47.在本技术实施例中,所述指令集中预设有重启指令,在所述芯片运行状态下,当所述芯片运行故障时,基于所述指令集向所述一级启动模块发送重启指令。
48.在本技术实施例中,响应于接收到从机设备挂载请求,基于所述二级启动模块对所述从机设备进行控制及访问。
49.本技术实施例中的芯片启动方法,通过设置具有较高读写速度的一级启动模块,因此在芯片上电启动时,一级启动模块可以从可擦除存储器内快速读取预先存储的芯片的启动固件,并快速写入随机读取存储器内,以供二级启动模块基于芯片的启动固件,完成芯
片的初始化工作,从而提升了芯片的启动速度;另外,当芯片更新、参数更改、运行错误时,可以基于二级启动模块自身的编程能力,进行相应的参数修改或者复位启动,提高了芯片运行时参数配置的灵活性,减少了芯片的配置重启次数,同时不占用芯片主处理器的资源。
50.此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
51.虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
52.以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。