本发明实施例涉及芯片架构技术领域,尤其涉及一种芯片系统和芯片系统的启动方法。
背景技术:
针对芯片系统在进行启动时,通常所采用的是在芯片系统复位释之后,通过读取存储在只读存储器(read-onlymemory,rom)中的启动代码进行启动。如图1所示为现有技术中的芯片系统的结构示意图,如图所示,芯片系统中的中央处理器(centralprocessingunit,cpu)在复位释放后发出命令提示符cmd到只读存储器rom,rom根据cmd将所保存的启动代码通过片上总线返回启动代码数据,cpu经过多次读取获取完整的启动代码数据,并根据完整的启动代码数据完成启动,并由cpu控制整个芯片系统的工作。
但是现有技术中的芯片系统在启动时,启动代码通常是固定到内部的rom中,而rom在芯片系统制造完成之后具有不可更改的特性,在rom中的启动代码有误的情况下,则整个芯片系统则无法正常启动,甚至需要进行作废处理,因此启动方式具有唯一性,无法满足用户对启动方式多样性的需求。
技术实现要素:
本发明实施例提供了一种芯片系统和芯片系统的启动方法,以实现芯片系统启动方式的多样性。
第一方面,本发明实施例提供了一种芯片系统,包括:中央处理器cpu、与cpu连接的串行通信接口和地址重映射单元,以及通过片上总线与地址重映射单元连接的片上存储单元;
cpu,用于根据获取的复位信号进行初始化;
串行通信接口,用于将获取的启动指令发送给地址重映射单元,其中,启动指令中包含启动数据和目标地址;
地址重映射单元,用于将启动数据通过片上总线发送给片上存储单元,并在片上存储单元的目标地址中进行保存;
cpu,用于在复位信号释放时,基于地址重映射单元通过片上总线从片上存储单元的目标地址中读取启动数据,并根据启动数据进行启动。
可选的,系统还包括选择单元,选择单元通过第一输入端口与串行通信接口连接,选择单元通过第二输入口与外部主机连接;选择单元,用于根据用户第一选择指令选择从第一输入端口或第二输入端口所输入的复位信号,并将复位信号传输给cpu。
可选的,选择单元,还用于根据用户第二选择指令选择从第一输入端口或第二输入端口所输入的复位释放消息,并将复位释放消息传输给cpu,以使cpu将复位信号释放。
可选的,系统还包括外围设备,外围设备与总线连接;cpu,还用于在启动后控制外围设备的工作状态。
可选的,系统还包括与片上总线连接的只读存储器rom,地址重映射单元,还用于将目标地址对历史启动起始地址进行更新,其中,rom在历史启动地址中存储历史启动数据。
可选的,cpu,用于根据获取的复位信号将所保存的历史运行数据进行删除,并恢复到初始状态以进行初始化。
第二方面,本发明实施例提供了一种芯片系统的启动方法,应用于芯片系统,包括:通过cpu根据获取的复位信号进行初始化;
通过串行通信接口将获取的启动指令发送给地址重映射单元,其中,启动指令中包含启动数据和目标地址;
通过重映射单元将启动数据通过片上总线发送给片上存储单元,并在片上存储单元的目标地址中进行保存;
通过cpu确定复位信号释放时,基于地址重映射单元通过片上总线从片上存储单元的目标地址中读取启动数据,并根据启动数据进行启动。
可选的,通过cpu根据获取的复位信号进行初始化之前,还包括:获取从串行通信接口或外部主机所发送的复位信号。
可选的,根据启动数据进行启动之后,还包括:通过cpu控制外围设备的工作状态。
可选的,通过cpu根据获取的复位信号进行初始化,包括:通过cpu根据获取的复位信号将所保存的历史运行数据进行删除,并恢复到初始状态以进行初始化。
本发明实施例的技术方案,将通过串行通信接口获取的启动数据在片上存储单元的目标地址中进行保存,从而cpu在复位释放后根据从目标地址中所读取的启动数据进行启动,由于启动数据可以根据需要进行更改,从而满足了用户对启动方式多样性的需求。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是现有技术中芯片系统的结构示意图;
图2是本发明实施例一提供的芯片系统的结构示意图;
图3是本发明实施例二提供的芯片系统的启动方法流程图;
图4是本发明实施例三提供的芯片系统的启动方法流程图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、软件实现、硬件实现等等。
实施例一
图2为本发明实施例提供的芯片系统的结构示意图,该芯片系统包括:中央处理器cpu11、与cpu连接的串行通信接口12和地址重映射单元13,以及通过片上总线14与地址重映射单元连接的片上存储单元15。
其中,cpu11,用于根据获取的复位信号进行初始化;串行通信接口12,用于将获取的启动指令发送给地址重映射单元,其中,启动指令中包含启动数据和目标地址;地址重映射单元13,用于将启动数据通过片上总线发送给片上存储单元,并在片上存储单元的目标地址中进行保存;cpu11,用于在复位信号释放时,基于地址重映射单元通过片上总线从片上存储单元的目标地址中读取启动数据,并根据启动数据进行启动。
可选的,系统还包括选择单元16,选择单元16通过第一输入端口与串行通信接口连接,选择单元通过第二输入口与外部主机连接;选择单元,用于根据用户第一选择指令选择从第一输入端口或第二输入端口所输入的复位信号,并将复位信号传输给cpu。
可选的,cpu,用于根据获取的复位信号将所保存的历史运行数据进行删除,并恢复到初始状态以进行初始化。
可选的,系统还包括与片上总线连接的只读存储器rom,地址重映射单元,还用于将目标地址对历史启动起始地址进行更新,其中,rom在历史启动地址中存储历史启动数据。
具体的说,通过增加串行通信具有两个作用:
第一个作用是:增加cpu复位的方式,本实施方式中在保留原有一路复位通道的情况下,新增一路由串行通信接口控制的复位通道,通过两路复位通道所输入的任意一个复位信号都可以复位cpu,并且具体可以通过选择单元根据用户所输入的第一选择指令进行选择。并且当任意一路复位信号出现错误的情况下,用户还可以选择另外一路的复位信号,从而达到控制cpu复位的目的。其中,cpu在获取到复位信号之后会将之前运行过程中所保存的历史运行数据进行删除,并恢复到初始状态以进行初始化,从而为cpu启动以重新执行新的任务做准备。
第二个作用是:扩展芯片系统的启动空间,虽然在芯片系统中包含与片上总线连接的只读存储器rom18,但rom中的历史启动数据是在芯片系统制造过程中就已经写入到rom中的历史启动地址中,即使发现所写入的历史启动数据有误或需要根据实际情况对启动方式进行变更的情况下,也无法再次对rom中的历史启动数据进行修改。而通过增加串行通信接口12可以将所获取的启动指令发送给地址重映射单元13,由于在启动指令中包含启动数据和目标地址,因此地址重映射单元13会将启动数据通过片上总线发送给片上存储单元15,并将指令中所包含的启动数据保存在片上存储单元的目标地址中。并且本实施方式中的片上存储单元可以是任意能够进行数据更新的存储空间,例如,随机存取存储器(randomaccessmemory,ram)等,当然,本实施方式中仅是举例说明,而并不对片上存储单元的具体类型进行限定。相比于之前的rom启动方式,本实施方式中用户可以根据需要对历史启动数据进行修改,并将所获取的新的启动数据在片上存储空间进行存储,因此显著扩展了芯片系统的启动空间。如图2中的虚线所示为通过串行通信接口所获取的启动数据保存在片上存储单元的传输过程示意图。
需要说明的是,地址重映射单元13在通过片上总线将启动数据发送给片上存储单元,并在片上存储单元的目标地址中进行保存的同时,为了便于后续cpu能够从正确的位置读取到新的启动数据,地址重映射单元15还会将目标地址对历史启动地址进行更新,从而使得cpu可以通过访问地址重映射单元确定新的启动数据的存储位置,而不会继续从原来的rom的历史启动地址中读取可能错误的历史启动数据。
可选的,选择单元16,还用于根据用户第二选择指令选择从第一输入端口或第二输入端口所输入的复位释放消息,并将复位释放消息传输给cpu,以使cpu将复位信号释放。
其中,在确定地址重映射单元将启动数据保存在片上存储单元的目标地址,并且cpu在通过与串行通信接口所连接的选择单元中第一输入端口,或者通过选择单元的第二输入端口获取到复位释放消失时,会进行复位信号释放。cpu在复位信号释放后会基于地址重映射单元通过片上总线从片上存储单元的目标地址中读取启动数据,并根据所获取的启动数据进行启动。
可选的,芯片系统还包括外围设备17,外围设备与总线连接;cpu,还用于在启动后控制外围设备的工作状态。从而通过启动后的cpu控制整个芯片系统的正常工作。
需要说明的是,本实施方式中可以将串行通信接口作为一个主设备,当然在芯片系统中还可以包含其它类型的主设备master19,本实施方式中并不对其它类型的主设备master19的具体类型进行限定。
本发明实施例的技术方案,将通过串行通信接口获取的启动数据在片上存储单元的目标地址中进行保存,从而cpu在复位释放后根据从目标地址中所读取的启动数据进行启动,由于启动数据可以根据需要进行更改,从而满足了用户对启动方式多样性的需求。
实施例二
图3是本发明实施例提供的芯片系统的启动方法的流程图,该方法可以应用于本发明实施例中的芯片系统。如图3所示,该方法具体包括如下操作:
步骤s101,通过cpu根据获取的复位信号进行初始化。
可选的,通过cpu根据获取的复位信号进行初始化之前,还可以包括:获取从串行通信接口或外部主机所发送的复位信号。
可选的,通过cpu根据获取的复位信号进行初始化,可以包括:通过cpu根据获取的复位信号将所保存的历史运行数据进行删除,并恢复到初始状态以进行初始化。
具体的说,系统还包括选择单元,选择单元通过第一输入端口与串行通信接口连接,选择单元通过第二输入端口与外部主机连接;选择单元,用于根据用户第一选择指令选择从第一输入端口或第二输入端口所输入的复位信号,并将复位信号传输给cpu。
需要说明的是,本实施方式中在保留原有一路复位通道的情况下,新增一路由串行通信接口控制的复位通道,通过两路复位通道所输入的任意一个复位信号都可以复位cpu,并且具体可以通过选择单元根据用户所输入的第一选择指令进行选择。并且当任意一路复位信号出现错误的情况下,还可以选择另外一路的复位信号,从而达到控制cpu复位的目的。其中,cpu在获取到复位信号之后会将之前运行过程中所保存的历史运行数据进行删除,并恢复到初始状态以进行初始化,从而为cpu启动并重新执行新的任务做准备。
步骤s102,通过串行通信接口将获取的启动指令发送给地址重映射单元,其中,启动指令中包含启动数据和目标地址。
具体的是,本实施方式具体是通过串行通信接口扩展芯片系统的启动空间,虽然在芯片系统中包含与片上总线连接的只读存储器rom,但rom中的历史启动数据是在芯片系统制造过程中就已经写入到rom中的历史启动地址中,即使发现所写入的历史启动数据有误或需要根据实际情况对启动方式进行变更的情况下,也无法再次对rom中的历史启动数据进行修改。而通过增加串行通信接口可以将所获取的启动指令发送给地址重映射单元,由于在启动指令中包含启动数据和目标地址,因此地址重映射单元会将启动数据通过片上总线发送给片上存储单元,并将指令中所包含的启动数据保存在片上存储单元的目标地址中。并且本实施方式中的片上存储单元可以是任意可进行数据更新的存储空间,例如为随机存取存储器(randomaccessmemory,ram)等,当然,本实施方式中仅是举例说明,而并不对片上存储单元的具体类型进行限定。相对于之前的rom启动方式,本实施方式中用户可以根据需要对历史启动数据进行修改,并将所获取的新的启动数据在片上存储空间进行存储,因此显著扩展了芯片系统的启动空间。
步骤s103,通过地址重映射单元将启动数据通过片上总线发送给片上存储单元,并在片上存储单元的目标地址中进行保存。
具体的说,本实施方式中地址重映射单元在通过片上总线将启动数据发送给片上存储单元,并在片上存储单元的目标地址中进行保存。同时为了便于后续cpu能够从正确的位置读取到新的启动数据,还会通过地址重映射单元将目标地址对历史启动地址进行更新,从而使得cpu可以通过访问地址重映射单元确定新的启动数据的存储位置,而不会继续从原来的rom的历史启动地址中读取可能错误的历史启动数据。
步骤s104,通过cpu确定复位信号释放时,基于地址重映射单元通过片上总线从片上存储单元的目标地址中读取启动数据,并根据启动数据进行启动。
具体的说,在确定地址重映射单元将启动数据保存在片上存储单元的目标地址,并且cpu在通过与串行通信接口所连接的选择单元中第一输入端口,或者通过选择单元的第二输入端口获取到复位释放消失时,会进行复位信号释放。cpu在复位信号释放后会基于地址重映射单元通过片上总线从片上存储单元的目标地址中读取启动数据,并根据所获取的启动数据进行启动。
本发明实施例的技术方案,将通过串行通信接口获取的启动数据在片上存储单元的目标地址中进行保存,从而cpu在复位释放后根据从目标地址中所读取的启动数据进行启动,由于启动数据可以根据需要进行更改,从而满足了用户对启动方式多样性的需求。
实施例三
图4是本发明实施例提供的芯片系统的启动方法的流程图,本实施例以上述实施例为基础,在根据启动数据进行启动之后,还包括:通过cpu控制外围设备的工作状态。
步骤s201,通过cpu根据获取的复位信号进行初始化。
可选的,通过cpu根据获取的复位信号进行初始化之前,还可以包括:获取从串行通信接口或外部主机所发送的复位信号。
可选的,通过cpu根据获取的复位信号进行初始化,可以包括:通过cpu根据获取的复位信号将所保存的历史运行数据进行删除,并恢复到初始状态以进行初始化。
步骤s202,通过串行通信接口将获取的启动指令发送给地址重映射单元,其中,启动指令中包含启动数据和目标地址。
步骤s203,通过地址重映射单元将启动数据通过片上总线发送给片上存储单元,并在片上存储单元的目标地址中进行保存。
步骤s204,通过cpu确定复位信号释放时,基于地址重映射单元通过片上总线从片上存储单元的目标地址中读取启动数据,并根据启动数据进行启动。
步骤s205,通过cpu控制外围设备的工作状态。
具体的说,芯片系统还包括外围设备,外围设备与总线连接。本实施方式中还可以通过处于启动状态的cpu控制外围设备的工作状态,以保证在cpu启动后芯片系统的其它外围设备能够正常工作。
需要说明的是,本实施方式中的外围设备可以包含usb端口或声卡等,本实施方式中并不限定外围设备的具体类型,只要cpu能够对其工作状态进行控制,并保证整个芯片系统的正常工作,则都是在本申请的保护范围之内的。
本发明实施例的技术方案,将通过串行通信接口获取的启动数据在片上存储单元的目标地址中进行保存,从而cpu在复位释放后根据从目标地址中所读取的启动数据进行启动,由于启动数据可以根据需要进行更改,从而满足了用户对启动方式多样性的需求。并且通过启动后的cpu控制外围设备的工作状态,从而保证芯片系统的其它外围设备的正常工作。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。