一种处理器的启动引导方法与流程

文档序号:17488590发布日期:2019-04-23 20:12阅读:433来源:国知局
一种处理器的启动引导方法与流程

本说明书涉及处理器启动引导技术领域,尤其涉及一种处理器的启动引导方法。



背景技术:

为了满足通信设备高性能、低成本的要求,norflash,作为当前两大非易失闪存技术之一,由于其可以在芯片内执行的特点,相对于nandflash(当前两大非易失闪存技术中另一个)更适合作为启动程序的存储介质使用。而cfi:commonflashinterface,公共闪存接口,该接口相对于串口的spi(serialperipheralinterface,串行外围设备接口)来说,也被称为parallel接口,并行接口;norflash主要采用两种接口形式,分别为cfi并行接口和spi串行接口;cfi接口为数据、地址信号分离的并行接口形式,非常适合cpu等芯片作为引导程序载体的接口形式使用;而spi接口相对于cfi并行接口,极大减少了信号线的数量,外围设计简单,故很适合于手机、平板等智能产品中;也因为如此,现在cfinorflash在市场上的供应量出现断崖式下坠,旧型号停产,且并没有新型号接替。对于低端网络设备(低端交换机、防火墙、路由、网关等)来说,通常会长期使用某种相对较老的cpu芯片方案,这些老cpu芯片方案,因面世较早,对引导程序载体的接口一般都只支持cfi,只能使用cfinorflash作为引导程序载体。虽然cpu芯片一般也具有spi接口,但cpu芯片内部缺少相应的驱动支持,不能使用spinorflash作为引导程序载体。



技术实现要素:

为克服相关技术中存在的问题,本说明书提供了方法及装置。

根据本说明书实施例的第一方面,提供一种处理器的启动引导方法,所述处理器通过可编程逻辑芯片与具有spi接口的非易失存储闪存连接;所述方法包括:

所述可编程逻辑芯片通过spi总线从所述非易失存储闪存中读取指定数据;

所述可编程逻辑芯片接收所述处理器通过并行总线发送过来的数据读取指令后,对所述指定数据进行串并转换,然后发送给所述处理器;

根据本说明书实施例的第二方面,提供一种处理器的启动引导装置,所述处理器通过可编程逻辑芯片与具有spi接口的非易失存储闪存连接;所述装置包括:

串行接口通信模块,用于通过spi总线从所述非易失存储闪存中读取指定数据;

并行接口通信模块,用于接收处理器发送过来的数据读取指令,和用于将转换后的数据发送给所述处理器;

转换模块,用于根据所述数据读取指令,对所述指定数据进行串并转换,然后将转换后的数据发送给所述并行接口通信模块。

根据本说明书实施例的第三方面,提供一种电子设备,包括:处理器和可编程逻辑芯片,可编程逻辑芯片通过spi总线与外部具有spi接口的非易失存储闪存连接;所述可编程逻辑芯片包括存储器与执行器;

所述存储器用于存储可执行的计算机指令;

所述执行器用于执行所述计算机指令时实现如下步骤:

所述可编程逻辑芯片通过spi总线从所述非易失存储闪存中读取指定数据;所述可编程逻辑芯片接收所述处理器通过并行总线发送过来的数据读取指令后,对所述指定数据进行串并转换,然后发送给所述处理器。

本说明书的实施例提供的技术方案可以包括以下有益效果:

本说明书实施例中,通过可编程逻辑芯片将处理器的并行接口与非易失存储闪存的spi接口连接,通过串并转换,实现处理器通过并行接口读取所述具有spi接口的非易失存储闪存中的引导程序数据,从而引导处理器启动。由于市面上部分处理器因面世较早,其内部只有与并行接口相对应的引导启动驱动支持,故该处理器只可接具有并行接口接口的cfinorflash作为引导程序载体。而通过加入具有串并转换的可编程逻辑芯片,简单修改现存的处理器连接cfinorflash来引导启动的硬件方案,使得所述部分处理器能够支持以spinorflash引导启动。这样,可避免设备厂家继续采购市面上价格较高且质量难以保证的cfinorflash,而采用主流供货的spinorflash,在软硬件变化不大的情况下继续维持生产,且成本不受影响。且通过只需要极短开发周期的具有串并转换的可编程逻辑芯片,延长了使用这些不支持spinorflash引导的部分处理器的低端网络设备的生命周期。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。

图1是本说明书根据一示例性实施例示出的一种处理器的启动引导方法的流程图。

图2是本说明书根据一示例性实施例示出的中央处理器启动时的启动引导示意图。

图3是本说明书根据一示例性实施例示出的中央处理器启动后的连接示意图。

图4是本说明书根据一示例性实施例示出的一种处理器的启动引导装置的组成框图。

图5是本说明书根据一示例性实施例示出的处理器启动后引导启动装置的连接框图。

图6是本说明书根据一示例性实施例示出的一种电子设备的硬件组成示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。

在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

接下来对本说明书实施例进行详细说明。

如图1所示,图1是本说明书根据一示例性实施例示出的一种处理器的启动引导方法的流程图,包括以下步骤102-104:

步骤102、所述可编程逻辑芯片通过spi总线从所述非易失存储闪存中读取指定数据;

步骤104、所述可编程逻辑芯片接收所述处理器通过并行总线发送过来的数据读取指令后,对所述指定数据进行串并转换,然后发送给所述处理器;

其中,所述可编程逻辑芯片通过并行总线连接至处理器的并行接口,还通过spi总线连接至所述非易失存储闪存的spi接口,即所述处理器通过可编程逻辑芯片与具有spi接口的非易失存储闪存连接。

其中,所述串并转换包括:将原本在并行总线上传输的信号进行处理转换为可在串行总线上传输的信号和/或将原本在串行总线上传输的信号进行处理转换为可在并行总线上传输的信号。

在本实施例中,所述处理器可以是中央处理器即cpu,也可以是具有并行接口且需引导启动程序来引导启动的其他处理器;所述具有spi接口的非易失存储闪存可以是spinorflash;所述可编程逻辑芯片可以是cpld(complexprogrammablelogicdevice),即用户根据各自需要而自行构造逻辑功能的数字集成电路,也可以是其他可编程的具有逻辑功能的芯片。

如图2所示,所述cpu201采用地址-数据复合并行总线202与所述cpld203连接。比如:cpu的并行io总线为32个地址信号a0~a31,16个数据信号d0~d15,d0~d15和低16位地址a0~a15是共用芯片管脚的,并通过一个额外的地址锁存信号ale来显示目前发送的信号类型。cpu在发起读操作时地址-数据复合的这16路管脚先发出地址信号,此时ale信号一直为低;待ale信号转高并维持一段时间后,这些管脚变为输入数据信号,接收cpld发送过来的数据。

在图2中,所述cpld203通过spi总线204与所述spinorflash205的spi接口连接,并通过该spi接口读取所述spinorflash内部的指定数据。

在一个实施例中,所述指定数据包括引导处理器启动的引导程序数据;即所述spinorflash内部存储有引导cpu启动的引导程序数据。

在一个实施例中,所述可编程逻辑芯片将读取到的指定数据缓存在所述可编程逻辑芯片内的缓存区中。以图2为例,所述cpld根据设计时配置好的初始化命令,将读取到的所述指定数据存放在内部的缓存区中。

在本实施例中,所述处理器通过并行总线给可编程逻辑芯片发送数据读取指令,所述数据读取指令包括有:处理器发出的片选信号、地址信号以及输出使能信号;且该数据读取指令是根据所述非易失存储闪存的读时序设置的。具体来说:cpu201上电后,通过数据-地址复合的i/o并行总线发送数据读取指令给cpld203。

在本实施例中,所述可编程逻辑芯片接收到所述数据读取指令后,根据默认配置,识别该数据读取指令中的地址信号,进而从缓存区中提取与所述地址信号对应的指定数据,将提取出的对应指定数据进行串并转换,转换成可通过并行总线传输给处理器的启动数据。具体而言,就是cpld接收到数据读取指令后,识别出cpu在启动时需要接收数据对应的地址信息,该地址信息与所述引导程序数据在所述spinorflash中的地址对应,并将该地址信息对应的引导程序数据从缓存区中顺序提取出来,再对该引导程序数据进行串并转换,即将原本通过spi接口传输出来的该引导程序数据转换成可以由数据-地址复合的i/o并行总线传输、并行接口接收的启动数据。

本实施例中,在引导cpu启动阶段,采用cpld进行并行io总线到spi总线的数据转换来使cpu使用并行io总线读取spinorflash的数据,实现cpu支持spinorflash引导启动;这样使得不支持spinorflash引导的老型号cpu也能使用spinorflash作为引导程序载体,解决了cfinorflash采购难,成本高的问题,且进一步延长了使用老型号的cpu的低端网络设备的生命周期。本实施例中,采用spinorflash来引导cpu启动,相对于现有技术中采用cfinorflash来引导,spinorflash采用spi串行接口相对于cfi接口极大减少了信号线的数量,外围设计简单,芯片管脚数量少,大大减轻了处理器程序加载接口的运行负担,节约了pcb电路板的使用面积。

在一个实施例中,所述缓存区采用堆栈结构,依据所述数据读取指令,所述可编程逻辑芯片从缓存区中提取所述指定数据并连续发送给所述处理器。

在一个实施例中,在从缓存区中提取出所述指定数据并连续发送给所述处理器的同时,所述可编程逻辑芯片连续读取所述指定数据并将其存储在缓存区中,根据所述缓存区的剩余缓存空间决定是否从所述非易失存储闪存中继续读取指定数据。

仍以图二为例,依据cpu启动时cpu默认从flash0地址连续读取指定数据来获取引导程序数据,在所述cpld内设置了一个缓存区,当所述cpld接收到cpu从flash0地址开始读取指定数据的读取操作后,根据cpu每次的读取动作,将所述缓存区中从flash0地址开始的所述指定数据连续发送至cpu。而cpld也是从指定数据的起始地址开始连续读取所述spinorflash中的对应指定数据,并将其顺序存储在堆栈结构的缓存区中。cpu从cpld的缓存区提取指定数据的速率大小由指导数据中的引导程序数据大小决定。cpld根据缓存区的填充情况来决定是否继续读取所述指定数据还是挂起操作。根据对非易失存储闪存中的数据的访问特点,设计cpld将指定数据的传输格式由地址-数据复合并行io总线到spi总线的转换,可以降低对cpld性能的要求,也相对降低了cpld代码设计的复杂度;进而降低了cpu启动时的功耗。

在一个实施例中,所述可编程逻辑芯片从所述非易失存储闪存中连续读取指定数据,并向处理器连续提供指定数据,且所述可编程逻辑芯片通过spi总线读取指定数据的速率远大于所述处理器从缓存区中提取指定数据的速率,这样保证了缓存区内的缓存的数据不会出现被消耗完。这样所述可编程逻辑芯片不需要识别处理器的其他访问操作,且在启动时,处理器并不知道其读取的指定数据实际存储在所述非易失存储闪存中。

在一个实施例中,当处理器要发送数据写入所述非易失存储闪存中时,所述可编程逻辑芯片也可将原本通过并行接口发出、并口总线传输的所述发送数据转换成由串口总线传输、串口接口接收的写入数据。

在引导处理器(cpu)启动完成后,若依旧通过可编程逻辑器件对并行io总线到spi总线间的数据转换来支持处理器对所述非易失存储闪存进行读写操作,其对可编程逻辑器件的性能要求很高,且对低端网络设备的成本或有压力,且使得可编程逻辑器件的设计难度加大,需要长时间、高负载的验证测试保证功能的实现和稳定性。

在另一个实施例中,当所述处理器接收指定数据并启动后,处理器通过spi总线与所述可编程逻辑芯片连接;通过所述可编程逻辑芯片的总线转接,所述处理器通过spi总线访问所述非易失存储闪存。

在一个实施例中,所述通过spi总线与所述可编程逻辑芯片连接,具体为:当处理器启动后,处理器内的运行程序接管处理器的spi接口,将所述处理器的spi接口与所述可编程逻辑芯片的spi接口通过spi总线连接。

如图3所示,所述cpu(处理器)301通过地址-数据并行复合总线接收来自cpld303的指定数据(引导程序数据),完成cpu内部的内存控制器以及spi接口的初始化进程,完成初始化后,该cpu向所述cpld发送启动完成指令。接着cpld接收到该启动完成指令后,将cpld303上与spinorflash305连接的spi接口的控制权限给到cpu301,cpu301通过spi总线302与所述cpld301连接,如此,cpu301对所述spinorflash305内的数据访问,全程都是通过spi总线302以及spi总线304传输,不用做不同总线传输间的数据转换,故这种情况下,cpld只需要做总线转接就可以了。

也就是说处理器正常启动后,处理器通过自带的串行外设接口来实现对所述非易失存储闪存的正常读写操作,而不再用所述地址-数据并行复合总线来对该非易失存储闪存进行访问。

本实施例通过在启动时与启动后cpu对spinorflash的访问接口的转换,避免了在cpu启动后依旧通过地址-数据复合并行io总线连接到cpld,再通过cpld的串并转换来访问读取spinorflash。由于启动后,cpu会对spiflash进行各式各样不同的读写操作,这将对cpld的串并转换功能的稳定性以及准确性提出更大的挑战。故启动后将cpld转换到cpu的spi接口上,使得cpld在cpu启动阶段与cpu启动后,其工作模式单纯,可行性高;如此,对cpld的设计和后期验证测试都相对简单。

且启动后,通过用cpu的spi接口连接spi总线,来访问spinorflash,提高了启动后cpu对spinorflash中数据的读写速度,提升了处理器执行指令的响应速度。

与前述方法的实施例相对应,本说明书还提供了一种处理器的启动引导装置及其所应用的实施例。

在一个实施例中,提供了一种处理器的启动引导装置,处理器通过可编程逻辑芯片与具有spi接口的非易失存储闪存连接;所述装置包括:

串行接口通信模块,用于通过spi总线从所述非易失存储闪存中读取指定数据;

并行接口通信模块,用于接收处理器发送过来的数据读取指令,和用于将转换后的数据发送给所述处理器;

转换模块,用于根据所述数据读取指令,对所述指定数据进行串并转换,然后将转换后的数据发送给所述并行接口通信模块。

在一个实施例中,如图4所示,所述处理器401的启动引导装置包括可编程逻辑芯片403以及具有spi接口的非易失存储闪存405;所述可编程逻辑芯片403包括并行接口通信模块4031、转换模块4032以及串行接口通信模块4033;所述并行接口通信模块4031通过转换模块4032与所述串行接口通信模块4033连接;处理器启动时,所述处理器401通过并行总线402与所述并行接口通信模块4031连接,所述非易失存储闪存405通过spi总线404与所述串行接口通信模块4033连接;

所述串行接口通信模块4033通过spi总线404从所述非易失存储闪存405中读取指定数据;所述并行接口通信模块4031接收处理器401发送过来的数据读取指令;所述转换模块4032根据所述数据读取指令,对所述指定数据进行串并转换,然后将转换后的数据通过并行接口通信模块4031发送给处理器401。

在一个实施例中,所述可编程逻辑芯片还包括:用于缓存所述指定数据的缓存区,根据所述缓存区的剩余缓存空间来决定是否从所述非易失存储闪存中继续读取指定数据。其中,缓存区可集成在所述转换模块内部,也可独立设置在所述可编程逻辑芯片内。

在一个实施例中,所述并行接口通信模块通过spi总线读取指定数据的速率远大于所述处理器从缓存区中提取指定数据的速率。

在一个实施例中,如图5所示,当所述处理器501启动完成后,所述可编程逻辑芯片503的串行接口通信模块5033通过spi总线502与所述处理器501连接。

在一个实施例中,所述并行接口通信模块5033通过spi总线502与所述处理器501连接,具体为:当处理器启动后,处理器内的运行程序接管处理器的spi接口,将所述处理器的spi接口与所述并行接口通信模块5033通过spi总线502连接。

具体而言,就是启动前,所述处理器通过并行总线与可编程逻辑芯片的并行接口通信模块5031连接;启动后,所述处理器的spi接口被激活,此时,所述处理器将它的spi接口与所述串行接口通信模块5033通过spi总线502连接。如此,避免了启动后,若处理器501要读写所述非易失存储闪存505时,仍旧需要通过并行总线与并行接口通信模块5031通信,再通过转换模块5032对并行接口通信模块5031接收到的数据信号进行转换,转换成可通过串行接口通信模块5033发送、spi总线504传输的数据信号;通过spi总线502将处理器501与所述串行接口通信模块5033直接连接,进而实现了处理器读写所述非易失存储闪存时,不用所述转换模块5032处理,全程通过spi总线进行传输。

本说明书文件中处理器的启动引导装置的实施例可以应用在计算机设备上,例如服务器或终端设备。该装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在文件处理的可编程逻辑芯片将非易失性存储器中对应的启动引导程序指令读取到内存中运行形成的。

上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

本说明书还提供了一种电子设备,如图6所示,包括处理器601和可编程逻辑芯片602,可编程逻辑芯片通过spi总线与外部具有spi接口的非易失存储闪存603连接;所述可编程逻辑芯片602包括存储器605与执行器604;

所述存储器605用于存储可执行的计算机指令;

所述执行器604用于执行所述计算机指令时实现前述方法实施例对应的步骤:所述可编程逻辑芯片通过spi总线从所述非易失存储闪存中读取指定数据;所述可编程逻辑芯片接收所述处理器通过并行总线发送过来的数据读取指令后,对所述指定数据进行串并转换,然后发送给所述处理器。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。

应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。

以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。

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