CN116719583B - 一种启动方法、可编程逻辑器件、计算设备及存储介质 - Google Patents
一种启动方法、可编程逻辑器件、计算设备及存储介质 Download PDFInfo
- Publication number
- CN116719583B CN116719583B CN202310989268.1A CN202310989268A CN116719583B CN 116719583 B CN116719583 B CN 116719583B CN 202310989268 A CN202310989268 A CN 202310989268A CN 116719583 B CN116719583 B CN 116719583B
- Authority
- CN
- China
- Prior art keywords
- firmware
- processor
- programmable logic
- logic device
- rate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 81
- 238000012795 verification Methods 0.000 claims abstract description 65
- 238000004891 communication Methods 0.000 claims abstract description 35
- 238000004590 computer program Methods 0.000 claims description 10
- 230000002093 peripheral effect Effects 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 abstract description 31
- 238000012546 transfer Methods 0.000 description 8
- 230000009286 beneficial effect Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000004883 computer application Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本说明书实施方式提供了一种启动方法、可编程逻辑器件、计算设备及存储介质,所述启动方法通过与处理器连接的可编程逻辑器件以较高的第一速率向所述存储模块发送第一读取指令,所述第一读取指令用于指示所述存储模块将所述启动固件返回给所述处理器;并在启动固件校验通过后,将其以较低的第二速率传输至所述处理器的方式,实现了在满足处理器的通信速率需求以及启动固件的安全校验需求的同时,提高启动固件在可编程逻辑器件与存储模块之间的传输速率的目的,降低了处理器的启动过程所需耗时。
Description
技术领域
本说明书中实施方式关于计算机应用技术领域,具体地说,涉及计算机应用技术领域下的启动技术,更具体地说,涉及一种启动方法、可编程逻辑器件、计算设备及存储介质。
背景技术
目前,在芯片的启动过程中,需要芯片的处理器从非易失性存储介质中获取启动固件,并基于启动固件进行启动。
在一些类型的芯片中,由于启动所需的启动固件存储于外挂的非易失性存储介质中,因此在启动过程中,需要芯片的处理器从外挂的非易失性存储介质中获取启动固件以执行启动过程。但目前这类芯片的启动耗时较长。
发明内容
本说明书中多个实施方式提供一种启动方法、可编程逻辑器件、计算设备及存储介质,以解决现有的启动方式耗时较长的问题。
第一方面,本说明书的一个实施方式提供一种启动方法,应用于与处理器连接的可编程逻辑器件,所述可编程逻辑器件与存储模块连接,所述存储模块存储有启动固件,所述启动方法包括:
以第一速率向所述存储模块发送第一读取指令,所述第一读取指令用于指示所述存储模块将所述启动固件传输至所述处理器;
对所述启动固件进行校验,若校验通过,则将所述启动固件以第二速率传输至所述处理器;所述第一速率大于所述第二速率。
该启动方法通过与处理器连接的可编程逻辑器件以较高的第一速率向所述存储模块发送第一读取指令,所述第一读取指令用于指示所述存储模块将所述启动固件返回给所述处理器;并在启动固件校验通过后,将其以较低的第二速率传输至所述处理器的方式,实现了在满足处理器的通信速率需求以及启动固件的安全校验需求的同时,提高启动固件在可编程逻辑器件与存储模块之间的传输速率的目的,降低了处理器的启动过程所需耗时。
在一些实施方式中,所述以第一速率向所述存储模块发送第一读取指令包括:
响应于所述处理器以所述第二速率发送的携带有地址信息的第二读取指令,根据所述地址信息生成所述第一读取指令,并将所述第一读取指令以所述第一速率向所述存储模块发送;所述地址信息用于表征所述启动固件在所述存储模块中的存储地址;
或
响应于所述处理器以所述第二速率发送的携带有所述地址信息的第一读取指令,将所述第一读取指令以所述第一速率发送给所述存储模块。
在该实施方式中提供了两种生成第一读取指令的方式,在第一种生成方式中,处理器将携带有地址信息的第二读取指令发送给可编程逻辑器件,该第二读取指令可以指示可编程逻辑器件根据其携带的地址信息生成发送给存储模块的第一读取指令。在该生成方式中,可编程逻辑器件可以根据实际情况,基于第二读取指令生成更加贴合可编程逻辑器件与存储模块之间的传输需求的第一读取指令。例如,可编程逻辑器件可以根据可编程逻辑器件与存储模块之间的通信协议,基于处理器发送的第二读取指令生成第一读取指令,使得第一读取指令的格式更加满足可编程逻辑器件与存储模块之间的通信协议要求。
在第二种生成方式中,可编程逻辑器件直接将处理器发送的第一读取指令转发给存储模块,无需可编程逻辑器件对第一读取指令进行二次处理,有利于简化可编程逻辑器件的运算逻辑。
在一些实施方式中,所述处理器与所述可编程逻辑器件通过四线串行外围接口QSPI总线连接,所述可编程逻辑器件与所述存储模块通过所述QSPI总线连接;
所述以第一速率向所述存储模块发送第一读取指令包括:
基于工作在四线模式的QSPI总线,将所述第一读取指令以所述第一速率发送给所述存储模块;
所述将所述启动固件以第二速率传输至所述处理器包括:
基于工作在单线模式的QSPI总线,将所述启动固件以所述第二速率传输至所述处理器。
QSPI总线协议具有架构简单,使用方便,且具有较高灵活性的特点。特别地,QSPI总线协议可以根据所连接设备的需求,选择不同的传输模式和速率,以适应不同设备对于数据传输速率的需求。如此,在本实施方式中,可以将可编程逻辑器件与处理器之间的QSPI总线设置为工作在单线模式,这样即可满足第二速率的数据传输速率需求;将可编程逻辑器件与存储模块之间的QSPI总线设置为工作在四线模式,这样即可满足第一速率的数据传输速率需求。通过简单地模式设置,即可利用QSPI总线满足可编程逻辑器件与存储模块之间以及可编程逻辑器件与处理器之间的不同数据传输速率需求,有利于简化所述启动方法。
在一些实施方式中,所述基于工作在四线模式的QSPI总线,将所述第一读取指令以所述第一速率发送给所述存储模块包括:
通过工作在四线模式的QSPI总线的多条信号线,将所述第一读取指令以所述第一速率发送给所述存储模块;
所述基于工作在单线模式的QSPI总线,将所述启动固件以所述第二速率传输至所述处理器包括:
通过工作在单线模式的QSPI总线的一条信号线,将所述启动固件以所述第二速率传输至所述处理器。
在本实施方式中,在可编程逻辑器件与存储模块之间通信时,通过工作在四线模式的QSPI总线的多条信号线传输数据,以提高可编程逻辑器件与存储模块之间的通信速率。而在可编程逻辑器件与处理器之间通信时,通过工作在单线模式下的QSPI总线的一条信号线传输数据即可满足以第二速率传输数据的需求,无需占用较多的处理器和可编程逻辑器件的引脚,有利于释放硬件资源。
在一些实施方式中,所述存储模块存储有多个所述启动固件;
所述对所述启动固件进行校验包括:
对多个所述启动固件进行校验;
所述将所述启动固件以第二速率传输至所述处理器包括:
将通过校验的任一所述启动固件以所述第二速率传输至所述处理器。
在本实施方式中,所述存储模块中存储有多个启动固件,在进行启动固件的校验时,可以对存储模块中存储的多个启动固件中的部分或全部进行校验,如此,可以避免在存储模块中存储的部分启动固件被篡改后就无法启动的情况,有利于提高启动成功率。例如,假设存储模块中存储有五个启动固件,分别为启动固件A、B、C、D和E,当启动固件E被篡改无法通过校验时,在校验时可以对启动固件A、B、C和D进行校验,避免由于一个或部分启动固件被篡改而无法启动的情况。
在一些实施方式中,所述存储模块包括三个彼此独立的存储设备,所述存储模块存储有至少三个启动固件,所述至少三个启动固件分别存储于三个所述存储设备中;
所述对多个所述启动固件进行校验包括:
对所述至少三个启动固件进行三模冗余校验,当存在两个或两个以上的所述启动固件相同时,认定两个或两个以上相同的所述启动固件通过校验。
在本实施方式中,至少三个启动固件分别存储于三个所述存储设备中,如此可以避免由于某个存储设备受到外界干扰而导致存储于其中的启动固件被损坏的情况。此外,在本实施方式中,当存在两个或两个以上的所述启动固件相同时,即认定这些相同的启动固件通过校验,可以在保证启动固件的安全性的基础上,提高安全启动成功的概率。
第二方面,本说明书实施方式提供了一种可编程逻辑器件,包括:第一接口、总线控制器、校验模块和第二接口;其中,
所述第一接口,用于连接处理器;
所述第二接口,用于连接存储模块;
所述总线控制器,用于通过所述第二接口以第一速率向所述存储模块发送第一读取指令,所述第一读取指令用于指示所述存储模块将所述启动固件返回给所述处理器;和用于通过所述第一接口,将接收的所述启动固件以第二速率传输至所述处理器;所述第一速率大于所述第二速率;
所述校验模块,用于对所述启动固件进行校验,若校验通过,则将所述启动固件发送给所述总线控制器。
该可编程逻辑器件通过与处理器连接的可编程逻辑器件以较高的第一速率向所述存储模块发送第一读取指令,所述第一读取指令用于指示所述存储模块将所述启动固件返回给所述处理器;并在启动固件校验通过后,将其以较低的第二速率传输至所述处理器的方式,实现了在满足处理器的通信速率需求以及启动固件的安全校验需求的同时,提高启动固件在可编程逻辑器件与存储模块之间的传输速率的目的,降低了处理器的启动过程所需耗时。
在一些实施方式中,所述处理器与所述可编程逻辑器件通过四线串行外围接口QSPI总线连接,所述可编程逻辑器件与所述存储模块通过所述QSPI总线连接;
所述总线控制器,以第一速率向所述存储模块发送第一读取指令具体用于:基于工作在四线模式的QSPI总线,将所述第一读取指令以所述第一速率发送给所述存储模块;
所述总线控制器,将所述启动固件以第二速率传输至所述处理器具体用于:基于工作在单线模式的QSPI总线,将所述启动固件以所述第二速率传输至所述处理器。
在该实施方式中提供了两种生成第一读取指令的方式,在第一种生成方式中,处理器将携带有地址信息的第二读取指令发送给可编程逻辑器件,该第二读取指令可以指示可编程逻辑器件根据其携带的地址信息生成发送给存储模块的第一读取指令。在该生成方式中,可编程逻辑器件可以根据实际情况,基于第二读取指令生成更加贴合可编程逻辑器件与存储模块之间的传输需求的第一读取指令。例如,可编程逻辑器件可以根据可编程逻辑器件与存储模块之间的通信协议,基于处理器发送的第二读取指令生成第一读取指令,使得第一读取指令的格式更加满足可编程逻辑器件与存储模块之间的通信协议要求。
在第二种生成方式中,可编程逻辑器件直接将处理器发送的第一读取指令转发给存储模块,无需可编程逻辑器件对第一读取指令进行二次处理,有利于简化可编程逻辑器件的运算逻辑。
在一些实施方式中,所述存储模块存储有多个所述启动固件;
所述校验模块,对所述启动固件进行校验,若校验通过,则将所述启动固件发送给所述总线控制器具体用于:对多个所述启动固件进行校验,当校验通过时,将通过校验的任一所述启动固件发送给所述总线控制器。
在本实施方式中,所述存储模块中存储有多个启动固件,在进行启动固件的校验时,可以对存储模块中存储的多个启动固件中的部分或全部进行校验,如此,可以避免在存储模块中存储的部分启动固件被篡改后就无法启动的情况,有利于提高启动成功率。例如,假设存储模块中存储有五个启动固件,分别为启动固件A、B、C、D和E,当启动固件E被篡改无法通过校验时,在校验时可以对启动固件A、B、C和D进行校验,避免由于一个或部分启动固件被篡改而无法启动的情况。
在一些实施方式中,所述校验模块,将通过校验的任一所述启动固件发送给所述总线控制器具体用于:
以所述第一速率,将通过校验的任一所述启动固件发送给所述总线控制器。
在一些实施方式中,所述校验模块为三模冗余电路;所述存储模块包括三个彼此独立的存储设备,所述存储模块存储有至少三个所述启动固件,所述至少三个启动固件分别存储于三个所述存储设备中;
所述三模冗余电路对多个所述启动固件进行校验具体用于:
对所述至少三个启动固件进行三模冗余校验,当存在两个或两个以上的所述启动固件相同时,认定两个或两个以上相同的所述启动固件通过校验。
在本实施方式中,至少三个启动固件分别存储于三个所述存储设备中,如此可以避免由于某个存储设备受到外界干扰而导致存储于其中的启动固件被损坏的情况。此外,在本实施方式中,当存在两个或两个以上的所述启动固件相同时,即认定这些相同的启动固件通过校验,可以在保证启动固件的安全性的基础上,提高安全启动成功的概率。
第三方面,本说明书实施例提供了一种计算设备,包括:处理器、可编程逻辑器件和存储模块;其中,
所述处理器与所述可编程逻辑器件连接,所述可编程逻辑器件与所述存储模块连接,所述存储模块存储有启动固件;
所述可编程逻辑器件,用于以第一速率向所述存储模块发送第一读取指令,所述第一读取指令用于指示所述存储模块将所述启动固件返回给所述处理器;对所述启动固件进行校验,若校验通过,则将所述启动固件以第二速率传输至所述处理器;所述第一速率大于所述第二速率;
所述处理器,用于接收所述可编程逻辑器件返回的所述启动固件。
在一些实施方式中,所述可编程逻辑器件包括可编程逻辑门阵列。
第四方面,本说明书实施例提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时,实现如上述的启动方法。
第五方面,本说明书实施例提供了一种计算机程序产品或计算机程序,所述计算机程序产品包括计算机程序,所述计算机程序存储在计算机可读存储介质中;所述计算机设备的处理器从所述计算机可读存储介质读取所述计算机程序,所述处理器执行所述计算机程序时实现上述的启动方法的步骤。
本说明书提供的多个实施方式,通过与处理器连接的可编程逻辑器件以较高的第一速率向所述存储模块发送第一读取指令,所述第一读取指令用于指示所述存储模块将所述启动固件返回给所述处理器;并在启动固件校验通过后,将其以较低的第二速率传输至所述处理器的方式,实现了在满足处理器的通信速率需求以及启动固件的安全校验需求的同时,提高启动固件在可编程逻辑器件与存储模块之间的传输速率的目的,降低了处理器的启动过程所需耗时。
附图说明
图1为本说明书的一个实施方式提供的一种计算设备的结构示意图。
图2为本说明书的一个实施方式提供的一种启动方法的流程示意图。
图3为本说明书的一个实施方式提供的另一种计算设备的结构示意图。
图4为本说明书的一个实施方式提供的又一种计算设备的结构示意图。
图5为本说明书的一个实施方式提供的一种可编程逻辑器件的结构示意图。
具体实施方式
除非另外定义,本说明书实施例使用的技术术语或者科学术语应当为本说明书所属领域内具有一般技能的人士所理解的通常意义。本说明书实施例使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来避免构成要素的混同而设置的。
除非上下文另有要求,否则,在整个说明书中,“多个”表示“至少两个”,“包括”被解释为开放、包含的意思,即为“包含,但不限于”。在说明书的描述中,术语“一个实施例”、“一些实施例”、“示例性实施例”、“示例”、“特定示例”或“一些示例”等旨在表明与该实施例或示例相关的特定特征、结构、材料或特性包括在本说明书的至少一个实施例或示例中。上述术语的示意性表示不一定是指同一实施例或示例。
下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
概述
在相关技术中,芯片的启动过程中需要芯片的处理器从非易失性存储介质中获取启动固件,这些非易失性存储介质可以是处理器(Central Processing Unit,CPU)的ROM(Read-Only Memory,ROM),也可以是外挂于处理器之外的非易失性存储器,例如闪存存储器(Flash Memory)、EEPROM(Electrically Erasable Programmable Read-Only Memory,电可擦除可编程只读存储器)等。特别是对于SRAM(Static Random-Access Memory,静态随机存取存储器)型芯片来讲,处理器中的存储介质为易失性的SRAM,处理器内部的存储介质在掉电时无法保存启动固件,因此该类芯片在启动时就需要从外挂的非易失性存储器中读取启动固件,并基于启动固件进行安全启动。
为了保障芯片启动过程的安全性,在启动过程中需要对存储于存储介质中的启动固件进行校验,在校验通过时,允许处理器基于该启动固件继续进行安全启动。特别是在SRAM型芯片中,由于启动固件存储于外挂的存储介质中,启动固件存在相对较大的被篡改风险,因此在启动过程中对启动固件进行校验对于保障芯片安全具有重要意义。
目前,在芯片的启动过程中,以启动固件存储于处理器的外部存储介质中为例,处理器需要读取外部存储介质中存储的启动固件,并对读取的启动固件进行校验。发明人通过研究发现,在这个启动过程中,启动固件在外部存储介质与处理器之间的传输速率是影响启动过程总耗时的关键因素,但受限于处理器支持的最高工作时钟频率较低的因素,导致处理器与外部存储介质之间的传输速率较低,从而导致整个启动过程较长。具体地,以处理器与外部存储介质之间基于QSPI(Quad Serial Peripheral Interface,四线串行外围接口)总线通信、处理器所支持的工作时钟频率为18.75MHz为例,在考虑路径延时的情况下,处理器获取存储于外部存储介质中的启动固件所需耗时在3.3μs(微秒)以上,若缩短处理器获取启动固件所需耗时,则可实现芯片的快速启动。
为了解决启动耗时较长的问题,发明人通过研究发现,可以将启动固件的校验逻辑集成于可编程逻辑器件中,并将可编程逻辑器件与处理器和存储介质的数据传输速率设置为不同速率,其中,可编程逻辑器件与存储介质之间的数据传输速率大于可编程逻辑器件与处理器之间的数据传输速率,如此,可以在满足处理器的通信速率传输需求以及启动固件的安全校验需求的同时,提高启动固件在可编程逻辑器件与存储介质之间的传输速率的目的,从而缩短整个启动过程耗时。
基于上述构思,本说明书实施方式提供了一种启动方法,下面将结合附图对本说明书实施方式提供的启动方法进行示例性描述。
示例性应用场景
本说明书实施方式提供的启动方法可以应用于计算设备的启动场景,在该场景下,计算设备由关机状态切换到开机状态时,计算设备可以执行本说明书实施方式提供的启动方法对启动过程中所需加载的启动固件进行安全校验,以缩短计算设备启动时所需消耗的时间,提高计算设备的启动速度。
在一些实施方式中,参考图1,该计算设备10可以包括处理器11、可编程逻辑器件12和存储模块13,其中,可编程逻辑器件12接于处理器11和存储模块13之间,存储模块13中存储有处理器11在启动过程中所需加载的启动固件。可编程逻辑器件12中可以集成有启动固件的校验逻辑,除此之外,可编程逻辑器件12可以执行本说明书实施方式提供的启动方法,以缩短处理器11获取到存储于存储模块13中的启动固件所需的时间,从而缩短整个启动过程所需的时间。
示例性方法
以应用于图1中的可编程逻辑器件为例,本说明书实施方式提供了一种启动方法,所述可编程逻辑器件与处理器和存储模块连接,所述存储模块存储有启动固件,如图2所示,所述启动方法包括:
S201:以第一速率向所述存储模块13发送第一读取指令,所述第一读取指令用于指示所述存储模块13将所述启动固件传输至所述处理器11。
存储模块13可以是通过可编程逻辑器件12与处理器11连接,且位于处理器11外部的存储介质,例如可以包括闪存存储器或EEPROM等,在一些实施方式中,所述存储模块13包括闪存存储器,闪存存储器具有访问速度高且容量较大的特点。存储模块13中存储的启动固件可以是指在启动过程中所需加载的固件中的至少一种。
可编程逻辑器件12可以包括FPGA(Field-Programmable Gate Array,现场可编程门阵列),除此之外,在一些实施方式中,可编程逻辑器件12还可以包括CPLD(ComplexProgrammable Logic Device,复杂可编程逻辑器件12),本说明书对此并不做限定。在可编程逻辑器件12与存储模块13之间进行通信时,可以以较高的第一速率进行,以缩短可编程逻辑器件12与存储模块13之间的数据传输时间。具体地,可编程逻辑器件12可以以第一速率将第一读取指令发送给存储模块13,存储模块13在响应第一读取指令将启动固件传输给可编程逻辑器件12时也可以以较高的第一速率进行数据传输,从而缩短数据在可编程逻辑器件12与存储模块13之间的传输耗时,有利于缩短整个启动过程。
S202:对所述启动固件进行校验,若校验通过,则将所述启动固件以第二速率传输至所述处理器11;所述第一速率大于所述第二速率。
在从存储模块13中获取到所述启动固件后,可以执行集成于可编程逻辑器件12中的校验逻辑,对所述启动固件进行校验,满足启动过程中对于启动固件的安全要求。在启动固件校验通过后,以相对较低的第二速率将启动固件传输给所述处理器11,以满足处理器11对于数据传输速率的需求。
通过上述启动方法,可以在兼容处理器11对于数据传输速率的要求的同时,提高可编程逻辑器件12与存储模块13之间的数据传输速率,缩短启动固件以及第一读取指令在可编程逻辑器件12与存储模块13之间的传输耗时,从而缩短整个启动过程所需时长。
在一些实施方式中,处理器11和可编程逻辑器件12之间可以支持以第二速率进行数据的传输。而可编程逻辑器件12与存储模块13之间可以支持以第一速率进行数据的传输,也可以兼容以第二速率进行数据的传输,如此可以满足可编程逻辑器件12与存储模块13之间的多种数据传输需求。
在本说明书的一个实施方式中,提供了两种第一读取指令的可行生成方式,具体地,所述以第一速率向所述存储模块13发送第一读取指令包括:
响应于所述处理器11以所述第二速率发送的携带有地址信息的第二读取指令,根据所述地址信息生成所述第一读取指令,并将所述第一读取指令以所述第一速率向所述存储模块13发送;所述地址信息用于表征所述启动固件在所述存储模块13中的存储地址;
或
响应于所述处理器11以所述第二速率发送的携带有所述地址信息的第一读取指令,将所述第一读取指令以所述第一速率发送给所述存储模块13。
在第一种生成方式中,第二读取指令可以是处理器11发送给可编程逻辑器件12的指令,其携带的地址信息可以用于指示启动固件在存储模块13中的存储位置。在一些实施方式中,第二读取指令可以用于指示可编程逻辑器件12基于其携带的地址信息生成所述第一读取指令,并将所述第一读取指令发送给所述存储模块13。具体地,处理器11将携带有地址信息的第二读取指令发送给可编程逻辑器件12,该第二读取指令可以指示可编程逻辑器件12根据其携带的地址信息生成发送给存储模块13的第一读取指令。在该生成方式中,可编程逻辑器件12可以根据实际情况,基于第二读取指令生成更加贴合可编程逻辑器件12与存储模块13之间的传输需求的第一读取指令。例如,可编程逻辑器件12可以根据可编程逻辑器件12与存储模块13之间的通信协议,基于处理器11发送的第二读取指令生成第一读取指令,使得第一读取指令的格式更加满足可编程逻辑器件12与存储模块13之间的通信协议要求。
在第二种生成方式中,可编程逻辑器件12直接将处理器11发送的第一读取指令转发给存储模块13,无需可编程逻辑器件12对第一读取指令进行二次处理,有利于简化可编程逻辑器件12的运算逻辑。
为了满足处理器11、可编程逻辑器件12以及存储模块13之间不同的传输速率需求,在本说明书的一个实施方式中,所述处理器11与所述可编程逻辑器件12通过四线串行外围接口QSPI总线连接,所述可编程逻辑器件12与所述存储模块13通过所述QSPI总线连接;
所述以第一速率向所述存储模块13发送第一读取指令包括:
基于工作在四线模式的QSPI总线,将所述第一读取指令以所述第一速率发送给所述存储模块13;
所述将所述启动固件以第二速率传输至所述处理器11包括:
基于工作在单线模式的QSPI总线,将所述启动固件以所述第二速率传输至所述处理器11。
QSPI总线协议具有架构简单,使用方便,且具有较高灵活性的特点。特别地,QSPI总线协议可以根据所连接设备的需求,选择不同的传输模式和速率,以适应不同设备对于数据传输速率的需求。如此,在本实施方式中,可以将可编程逻辑器件12与处理器11之间的QSPI总线设置为工作在单线模式,这样即可满足第二速率的数据传输速率需求;将可编程逻辑器件12与存储模块13之间的QSPI总线设置为工作在四线模式,这样即可满足第一速率的数据传输速率需求。通过简单地模式设置,即可利用QSPI总线满足可编程逻辑器件12与存储模块13之间以及可编程逻辑器件12与处理器11之间的不同数据传输速率需求,有利于简化所述启动方法。
下面对QSPI总线协议进行简单介绍,在QSPI总线协议中包括6个信号,分别是四个数据线信号IO0~IO3、一个时钟输出信号CLK和一个片选输出信号nCS(低电平有效)。关于这些信号的简单介绍如下:
nCS信号:片选输出(低电平有效)信号,QSPI通讯以nCS信号置低电平为开始信号,以nCS信号被拉高作为结束信号。
CLK:时钟输出信号,用于通讯数据同步。它由通讯主机产生,决定了通讯的速率,不同的设备支持的最高时钟频率不一样,两个设备之间通讯时,通讯速率受限于低速设备。
IO0:在双线 / 四线模式中为双向 IO(Input/Output,输入输出)信号,单线模式中为串行输出。
IO1:在双线 / 四线模式中为双向 IO信号,单线模式中为串行输入。
IO2:在四线模式中为双向 IO。
IO3:在四线模式中为双向 IO。
关于QSPI总线的模式介绍如下:
单线模式:单线模式允许串行发送/接收单独的1位数据。在此模式下,数据通过SO 信号(由存储模块13输出给主控器(例如可编程逻辑器件12或处理器11)的信号,其 I/O与IO0 共享)发送到存储模块13。从存储模块13接收到的数据通过 SI(由主控器发送给存储模块13的信号,其 I/O 与 IO1 共享)送达。
在单线模式下:IO0 (SO) 处于输出模式;IO1 (SI) 处于输入模式(高阻抗);IO2处于输出模式并强制置“0”(以禁止“写保护”功能);IO3 处于输出模式并强制置“1”(以禁止“保持”功能)。
四线模式:在四线模式下,可以通过IO0/IO1/IO2/IO3 信号同时发送/接收四位数据。
为了更好地利用QSPI总线的上述特性,在本说明书的一个实施方式中,所述基于工作在四线模式的QSPI总线,将所述第一读取指令以所述第一速率发送给所述存储模块13包括:
通过工作在四线模式的QSPI总线的多条信号线,将所述第一读取指令以所述第一速率发送给所述存储模块13;
所述基于工作在单线模式的QSPI总线,将所述启动固件以所述第二速率传输至所述处理器11包括:
通过工作在单线模式的QSPI总线的一条信号线,将所述启动固件以所述第二速率传输至所述处理器11。
在本实施方式中,在可编程逻辑器件12与存储模块13之间通信时,通过工作在四线模式的QSPI总线的多条信号线传输数据,以提高可编程逻辑器件12与存储模块13之间的通信速率。而在可编程逻辑器件12与处理器11之间通信时,通过工作在单线模式下的QSPI总线的一条信号线传输数据即可满足以第二速率传输数据的需求,无需占用较多的处理器11和可编程逻辑器件12的引脚,有利于释放硬件资源。
为了提高启动固件通过校验的成功率,提高启动成功率,在本说明书的一个实施方式中,如图3所示,所述存储模块13存储有多个所述启动固件;
所述对所述启动固件进行校验包括:
对多个所述启动固件进行校验;
所述将所述启动固件以第二速率传输至所述处理器11包括:
将通过校验的任一所述启动固件以所述第二速率传输至所述处理器11。
在本实施方式中,所述存储模块13中存储有多个启动固件,在进行启动固件的校验时,可以对存储模块13中存储的多个启动固件中的部分或全部进行校验,如此,可以避免在存储模块13中存储的部分启动固件被篡改后就无法启动的情况,有利于提高启动成功率。例如,假设存储模块13中存储有五个启动固件,分别为启动固件A、B、C、D和E,当启动固件E被篡改无法通过校验时,在校验时可以对启动固件A、B、C和D进行校验,避免由于一个或部分启动固件被篡改而无法启动的情况。
在一些实施方式中,所述存储模块13中存储的多个所述启动固件可以是存储于一个存储设备的不同存储区域中的多个启动固件,也可以是存储于不同存储设备中的多个启动固件,例如参考图4,在本说明书的一个实施方式中,所述存储模块13包括三个彼此独立的存储设备131,所述存储模块13存储有至少三个启动固件,所述至少三个启动固件分别存储于三个所述存储设备131中;
所述对多个所述启动固件进行校验包括:
对所述至少三个启动固件进行三模冗余校验,当存在两个或两个以上的所述启动固件相同时,认定两个或两个以上相同的所述启动固件通过校验。
在本实施方式中,至少三个启动固件分别存储于三个所述存储设备131中,如此可以避免由于某个存储设备131受到外界干扰而导致存储于其中的启动固件被损坏的情况。此外,在本实施方式中,当存在两个或两个以上的所述启动固件相同时,即认定这些相同的启动固件通过校验,可以在保证启动固件的安全性的基础上,提高安全启动成功的概率。
在图4中,可编程逻辑器件12中示出了总线控制器121和校验模块122,其中,总线控制器121可以用于执行本说明书实施方式提供的启动方法,校验模块122可以用于执行对启动固件的校验。
仍然以图4所示,本说明书的一个实施方式提供了一种具体的启动过程示意,在本实施方式中,处理器11和可编程逻辑器件12之间基于工作于单线模式下的QSPI总线进行通信,可编程逻辑器件12与存储模块13的存储设备之间基于工作于四线模式下的QSPI总线进行通信。
在该情况下,在图4中的路径1(即处理器11与可编程逻辑器件12中的总线控制器121之间的通信路径)的实际时钟频率较低,最高为30MHz左右,一般为18.75MHz,路径3(即可编程逻辑器件12中的校验模块122与存储模块13之间的通信路径)的时钟频率可以达到最高速率为166MHz,一般为100MHz左右。路径2(即可编程逻辑器件中总线控制器121与校验模块122之间的通信路径)与路径3的时钟频率相同,实际路径2可高于路径3的时钟频率。
实际应用场景中,处理器11端以较低速率启动,处理器11与可编程逻辑器件之间的QSPI总线工作在单线模式。单线模式下时序参考表1(以处理器11读取8bit(位)数据为例),实际时钟频率为18.75MHz或者更低,此时,8位数据需要48个时钟周期传输完毕,8位数据的整体传输时间为1S/18.75MHz×48(周期)=2.56μs。
表1单线模式下时序
实际应用场景中,存储模块13与可编程逻辑器件之间的QSPI纵向工作在四线模式。四线模式下时序参考表2(以处理器11读取8bit(位)数据为例),实际时钟频率为100MHz或者更高,此时,8位数据需要18个时钟周期传输完毕,8位数据的整体传输时间为1S/100MHz×18(周期)=0.18μs。其中空周期时间可缩减至0,整体时间最小可为0.1us(实际一般建议保留一个周期时间,整体时间最小可为0.11us)。
表2四线模式下时序
按照上述的内容为例,本说明书实施方式提供的启动方法的整体执行时间可以限制在0.4μs以内,对处理器11来说在启动过程中无需感知可编程逻辑器件12的所有操作。假设路径1、2和3所需时间相同。本说明书实施方式提供的启动方法的整体流程可以描述为:
步骤S1:处理器11启动,在18.75MHz时钟频率下以单线模式向可编程逻辑器件12发送第一读取指令。从处理器11启动开始计时,则第一读取指令发送过程所需耗时为1s/18.75MHz×32(发送命令和地址所需的32个周期)≈1.707μs,假设路径1时延为0.1μs,则第一读取指令发送过程总耗时1.807μs。处理器11在传输了第一读取指令后,等待数据返回。
步骤S2:总线控制器121在接收到该第一读取指令(命令+地址)后,在100MHz时钟频率下以四线快速模式向校验模块122发送第一读取指令。
步骤S3:此时第一读取指令通过校验模块122发出,校验模块122将此命令发送至存储模块13的三个存储设备。假设路径2和3时延均为0.02us,此时总耗时为1.847us。
步骤S3:三个存储设备根据第一读取指令返回相应的数据。(四线模式返回数据用时0.11us,路径3时延为0.02us,此时总耗时为1.977us)。
步骤S4:三个存储设备发出的数据经过三模冗余后传输至可编程逻辑器件12内的总线控制器121。(三模冗余时间(即启动固件的校验时间)一般很短,假设需要0.1us,路径2时延为0.02us,此时总耗时时间为2.097us)。
步骤S5:总线控制器121降为低速速率(100MHz降低至18.75MHz)后传输至给处理器11;(此时时间刚好控制在空周期快要结束的时候,实际时间为2.097us,符合时序要求的时间)。
步骤S6:处理器11获取正确启动固件。(获取启动固件需0.427us,路径1时延为0.1us此时总耗时时间为2.624us)。
通过上述过程描述可知,利用本说明书实施方式提供的启动方法,可以将处理器11获取到正确启动固件的时间压缩为2.624μs,有效地压缩了启动时间,提高了处理器11启动速率。
示例的可编程逻辑器件、计算设备及存储介质
本说明书的一个实施方式提供了一种可编程逻辑器件,如图5所示,包括:第一接口123、总线控制器121、校验模块122和第二接口124;其中,
所述第一接口123,用于连接处理器;
所述第二接口124,用于连接存储模块;
所述总线控制器121,用于通过所述第二接口124以第一速率向所述存储模块发送第一读取指令,所述第一读取指令用于指示所述存储模块将所述启动固件返回给所述处理器;和用于通过所述第一接口123,将接收的所述启动固件以第二速率传输至所述处理器;所述第一速率大于所述第二速率;
所述校验模块122,用于对所述启动固件进行校验,若校验通过,则将所述启动固件发送给所述总线控制器121。
可选地,所述第一接口123和所述第二接口124可以为遵循某一通讯协议的接口,例如在一些实施方式中,第一接口123和第二接口124可以均为遵循QSPI协议的接口,可以称为QSPI接口。
可选地,所述处理器与所述可编程逻辑器件12通过四线串行外围接口QSPI总线连接,所述可编程逻辑器件12与所述存储模块通过所述QSPI总线连接;
所述总线控制器121,以第一速率向所述存储模块发送第一读取指令具体用于:基于工作在四线模式的QSPI总线,将所述第一读取指令以所述第一速率发送给所述存储模块;
所述总线控制器121,将所述启动固件以第二速率传输至所述处理器具体用于:基于工作在单线模式的QSPI总线,将所述启动固件以所述第二速率传输至所述处理器。
可选地,所述存储模块存储有多个所述启动固件;
所述校验模块122,对所述启动固件进行校验,若校验通过,则将所述启动固件发送给所述总线控制器121具体用于:对多个所述启动固件进行校验,当校验通过时,将通过校验的任一所述启动固件发送给所述总线控制器121。
可选地,所述校验模块122,将通过校验的任一所述启动固件发送给所述总线控制器121具体用于:
以所述第一速率,将通过校验的任一所述启动固件发送给所述总线控制器121。
可选地,所述校验模块122为三模冗余电路;所述存储模块包括三个彼此独立的存储设备,所述存储模块存储有至少三个所述启动固件,所述至少三个启动固件分别存储于三个所述存储设备中;
所述三模冗余电路对多个所述启动固件进行校验具体用于:
对所述至少三个启动固件进行三模冗余校验,当存在两个或两个以上的所述启动固件相同时,认定两个或两个以上相同的所述启动固件通过校验。
关于可编程逻辑器件12中总线控制器121的具体功能逻辑及有益效果可参考上文中关于启动方法的相关描述,本说明书在此不再赘述。
相应的,本说明书实施方式还提供了一种计算设备,包括:处理器、可编程逻辑器件和存储模块;其中,
所述处理器与所述可编程逻辑器件连接,所述可编程逻辑器件与所述存储模块连接,所述存储模块存储有启动固件;
所述可编程逻辑器件,用于以第一速率向所述存储模块发送第一读取指令,所述第一读取指令用于指示所述存储模块将所述启动固件返回给所述处理器;对所述启动固件进行校验,若校验通过,则将所述启动固件以第二速率传输至所述处理器;所述第一速率大于所述第二速率;
所述处理器,用于接收所述可编程逻辑器件返回的所述启动固件。
可选地,所述可编程逻辑器件包括可编程逻辑门阵列。
在本实施例中,所述可编程逻辑器件可以执行上述任一实施方式中描述的启动方法,具有执行启动方法的相应有益效果,本说明书对此不再赘述,具体执行过程和相应有益效果可参考上文中的相关描述。
相应的,本说明书实施方式还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得该计算机执行上述任一实施方式中的启动方法。
相应的,本说明书实施方式还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述任一实施方式中的启动方法。
可以理解,本文中的具体的例子只是为了帮助本领域技术人员更好地理解本说明书实施方式,而非限制本说明书的范围。
可以理解,在本说明书中的各种实施方式中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本说明书实施方式的实施过程构成任何限定。
可以理解,本说明书中描述的各种实施方式,既可以单独实施,也可以组合实施,本说明书实施方式对此并不限定。
除非另有说明,本说明书实施方式所使用的所有技术和科学术语与本说明书的技术领域的技术人员通常理解的含义相同。本说明书中所使用的术语只是为了描述具体的实施方式的目的,不是旨在限制本说明书的范围。本说明书所使用的术语“和/或”包括一个或多个相关的所列项的任意的和所有的组合。在本说明书实施方式和所附权利要求书中所使用的单数形式的“一种”、“上述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
可以理解,本说明书实施方式的处理器可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施方式的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书实施方式中的公开的各方法、步骤及逻辑框图。通用处理器可以是可编程逻辑器件或者该处理器也可以是任何常规的处理器等。结合本说明书实施方式所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
可以理解,本说明书实施方式中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(ErasablePROM,EPROM)、电可擦除可编程只读存储器(EEPROM)或闪存。易失性存储器可以是随机存取存储器(RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本领域普通技术人员可以意识到,结合本文中所公开的实施方式描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本说明书的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施方式中的对应过程,在此不再赘述。
在本说明书所提供的几个实施方式中,应所述理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本说明书各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本说明书的技术方案本质上或者说对现有技术做出贡献的部分或者所述技术方案的部分可以以软件产品的形式体现出来,所述计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM)、随机存取存储器(RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本说明书的具体实施方式,但本说明书的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本说明书揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本说明书的保护范围之内。因此,本说明书的保护范围应所述以权利要求的保护范围为准。
Claims (14)
1.一种启动方法,其特征在于,应用于与处理器连接的可编程逻辑器件,所述可编程逻辑器件与存储模块连接,所述存储模块存储有启动固件,所述处理器与所述可编程逻辑器件通过四线串行外围接口QSPI总线连接,所述处理器与所述可编程逻辑器件之间的QSPI总线工作在单线模式,以第二速率实现所述处理器和所述可编程逻辑器件之间的通信;所述可编程逻辑器件与所述存储模块通过所述QSPI总线连接,所述可编程逻辑器件与所述存储模块之间的QSPI总线工作在四线模式,以第一速率实现所述存储模块与可编程逻辑器件之间的通信;所述启动方法包括:
以第一速率向所述存储模块发送第一读取指令,所述第一读取指令用于指示所述存储模块将所述启动固件传输至所述处理器;
对所述启动固件进行校验,若校验通过,则将所述启动固件以第二速率传输至所述处理器;所述第一速率大于所述第二速率。
2.根据权利要求1所述的方法,其特征在于,所述以第一速率向所述存储模块发送第一读取指令包括:
响应于所述处理器以所述第二速率发送的携带有地址信息的第二读取指令,根据所述地址信息生成所述第一读取指令,并将所述第一读取指令以所述第一速率向所述存储模块发送;所述地址信息用于表征所述启动固件在所述存储模块中的存储地址;
或
响应于所述处理器以所述第二速率发送的携带有所述地址信息的第一读取指令,将所述第一读取指令以所述第一速率发送给所述存储模块。
3.根据权利要求1所述的方法,其特征在于,所述以第一速率向所述存储模块发送第一读取指令包括:
基于工作在四线模式的QSPI总线,将所述第一读取指令以所述第一速率发送给所述存储模块;
所述将所述启动固件以第二速率传输至所述处理器包括:
基于工作在单线模式的QSPI总线,将所述启动固件以所述第二速率传输至所述处理器。
4.根据权利要求3所述的方法,其特征在于,所述基于工作在四线模式的QSPI总线,将所述第一读取指令以所述第一速率发送给所述存储模块包括:
通过工作在四线模式的QSPI总线的多条信号线,将所述第一读取指令以所述第一速率发送给所述存储模块;
所述基于工作在单线模式的QSPI总线,将所述启动固件以所述第二速率传输至所述处理器包括:
通过工作在单线模式的QSPI总线的一条信号线,将所述启动固件以所述第二速率传输至所述处理器。
5.根据权利要求1~4任一项所述的方法,其特征在于,所述存储模块存储有多个所述启动固件;
所述对所述启动固件进行校验包括:
对多个所述启动固件进行校验;
所述将所述启动固件以第二速率传输至所述处理器包括:
将通过校验的任一所述启动固件以所述第二速率传输至所述处理器。
6.根据权利要求5所述的方法,其特征在于,所述存储模块包括三个彼此独立的存储设备,所述存储模块存储有至少三个启动固件,所述至少三个启动固件分别存储于三个所述存储设备中;
所述对多个所述启动固件进行校验包括:
对所述至少三个启动固件进行三模冗余校验,当存在两个或两个以上的所述启动固件相同时,认定两个或两个以上相同的所述启动固件通过校验。
7.一种可编程逻辑器件,其特征在于,包括:第一接口、总线控制器、校验模块和第二接口;其中,
所述第一接口,用于连接处理器,所述处理器与所述可编程逻辑器件通过四线串行外围接口QSPI总线连接,所述处理器与所述可编程逻辑器件之间的QSPI总线工作在单线模式,以第二速率实现所述处理器与所述可编程逻辑器件之间的通信;
所述第二接口,用于连接存储模块,所述可编程逻辑器件与所述存储模块通过所述QSPI总线连接,所述存储模块与可编程逻辑器件之间的QSPI总线工作在四线模式,以第一速率实现所述存储模块和所述可编程逻辑器件之间的通信;
所述总线控制器,用于通过所述第二接口以所述第一速率向所述存储模块发送第一读取指令,所述第一读取指令用于指示所述存储模块将启动固件返回给所述处理器;和用于通过所述第一接口,将接收的所述启动固件以所述第二速率传输至所述处理器;所述第一速率大于所述第二速率;
所述校验模块,用于对所述启动固件进行校验,若校验通过,则将所述启动固件发送给所述总线控制器。
8.根据权利要求7所述的可编程逻辑器件,其特征在于,所述总线控制器,以第一速率向所述存储模块发送第一读取指令具体用于:基于工作在四线模式的QSPI总线,将所述第一读取指令以所述第一速率发送给所述存储模块;
所述总线控制器,将所述启动固件以第二速率传输至所述处理器具体用于:基于工作在单线模式的QSPI总线,将所述启动固件以所述第二速率传输至所述处理器。
9.根据权利要求7或8所述的可编程逻辑器件,其特征在于,所述存储模块存储有多个所述启动固件;
所述校验模块,对所述启动固件进行校验,若校验通过,则将所述启动固件发送给所述总线控制器具体用于:对多个所述启动固件进行校验,当校验通过时,将通过校验的任一所述启动固件发送给所述总线控制器。
10.根据权利要求9所述的可编程逻辑器件,其特征在于,所述校验模块,将通过校验的任一所述启动固件发送给所述总线控制器具体用于:
以所述第一速率,将通过校验的任一所述启动固件发送给所述总线控制器。
11.根据权利要求9所述的可编程逻辑器件,其特征在于,所述校验模块为三模冗余电路;所述存储模块包括三个彼此独立的存储设备,所述存储模块存储有至少三个所述启动固件,所述至少三个启动固件分别存储于三个所述存储设备中;
所述三模冗余电路对多个所述启动固件进行校验具体用于:
对所述至少三个启动固件进行三模冗余校验,当存在两个或两个以上的所述启动固件相同时,认定两个或两个以上相同的所述启动固件通过校验。
12.一种计算设备,其特征在于,包括:处理器、可编程逻辑器件和存储模块;其中,
所述处理器与所述可编程逻辑器件连接,所述可编程逻辑器件与所述存储模块连接,所述存储模块存储有启动固件;所述处理器与所述可编程逻辑器件通过四线串行外围接口QSPI总线连接,所述处理器与所述可编程逻辑器件之间的QSPI总线工作在单线模式,以第二速率实现所述处理器和所述可编程逻辑器件之间的通信;所述可编程逻辑器件与所述存储模块通过所述QSPI总线连接,所述可编程逻辑器件与所述存储模块之间的QSPI总线工作在四线模式,以第一速率实现所述存储模块与可编程逻辑器件之间的通信;
所述可编程逻辑器件,用于以所述第一速率向所述存储模块发送第一读取指令,所述第一读取指令用于指示所述存储模块将所述启动固件返回给所述处理器;对所述启动固件进行校验,若校验通过,则将所述启动固件以所述第二速率传输至所述处理器;所述第一速率大于所述第二速率;
所述处理器,用于接收所述可编程逻辑器件返回的所述启动固件。
13.根据权利要求12所述的计算设备,其特征在于,所述可编程逻辑器件包括可编程逻辑门阵列。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器运行时,实现如权利要求1-6任一项所述的启动方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310989268.1A CN116719583B (zh) | 2023-08-08 | 2023-08-08 | 一种启动方法、可编程逻辑器件、计算设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310989268.1A CN116719583B (zh) | 2023-08-08 | 2023-08-08 | 一种启动方法、可编程逻辑器件、计算设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116719583A CN116719583A (zh) | 2023-09-08 |
CN116719583B true CN116719583B (zh) | 2023-11-10 |
Family
ID=87873726
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310989268.1A Active CN116719583B (zh) | 2023-08-08 | 2023-08-08 | 一种启动方法、可编程逻辑器件、计算设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116719583B (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107861775A (zh) * | 2017-12-04 | 2018-03-30 | 郑州云海信息技术有限公司 | 一种ssd启动控制设备以及方法 |
CN109542518A (zh) * | 2018-10-09 | 2019-03-29 | 华为技术有限公司 | 芯片和启动芯片的方法 |
CN109669729A (zh) * | 2018-12-26 | 2019-04-23 | 杭州迪普科技股份有限公司 | 一种处理器的启动引导方法 |
CN110109716A (zh) * | 2019-05-13 | 2019-08-09 | 深圳忆联信息系统有限公司 | 保证ssd固件稳定加载的方法、装置、计算机设备及存储介质 |
CN111124517A (zh) * | 2019-12-23 | 2020-05-08 | 湖南国科微电子股份有限公司 | 嵌入式芯片引导启动方法、装置、计算机设备和存储介质 |
CN210691297U (zh) * | 2019-12-23 | 2020-06-05 | 宁波和利时信息安全研究院有限公司 | 一种控制器的启动装置及控制器 |
CN111722878A (zh) * | 2020-06-19 | 2020-09-29 | 北京集创北方科技股份有限公司 | 芯片启动控制方法、芯片、显示面板及电子设备 |
CN114237676A (zh) * | 2021-12-28 | 2022-03-25 | 湖南云箭智能科技有限公司 | 一种fpga逻辑更新方法、装置、设备及可读存储介质 |
CN114912397A (zh) * | 2022-05-31 | 2022-08-16 | 上海阵量智能科技有限公司 | 可编程逻辑器件、原型验证系统、方法、设备及存储介质 |
CN115061844A (zh) * | 2022-06-20 | 2022-09-16 | 长沙硕博电子科技股份有限公司 | Plc嵌入式软件的启动方法、设备和介质 |
WO2022237551A1 (zh) * | 2021-05-12 | 2022-11-17 | 华为技术有限公司 | 安全启动装置及方法 |
WO2023029826A1 (zh) * | 2021-08-30 | 2023-03-09 | 华为技术有限公司 | 一种启动文件校验方法、校验组件及设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8626965B2 (en) * | 2011-07-25 | 2014-01-07 | Oracle International Corporation | Using a DMA engine to automatically validate DMA data paths |
JP5984500B2 (ja) * | 2011-11-30 | 2016-09-06 | 三菱電機株式会社 | 情報処理装置、放送受信装置及びソフトウェア起動方法 |
-
2023
- 2023-08-08 CN CN202310989268.1A patent/CN116719583B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107861775A (zh) * | 2017-12-04 | 2018-03-30 | 郑州云海信息技术有限公司 | 一种ssd启动控制设备以及方法 |
CN109542518A (zh) * | 2018-10-09 | 2019-03-29 | 华为技术有限公司 | 芯片和启动芯片的方法 |
CN109669729A (zh) * | 2018-12-26 | 2019-04-23 | 杭州迪普科技股份有限公司 | 一种处理器的启动引导方法 |
CN110109716A (zh) * | 2019-05-13 | 2019-08-09 | 深圳忆联信息系统有限公司 | 保证ssd固件稳定加载的方法、装置、计算机设备及存储介质 |
CN111124517A (zh) * | 2019-12-23 | 2020-05-08 | 湖南国科微电子股份有限公司 | 嵌入式芯片引导启动方法、装置、计算机设备和存储介质 |
CN210691297U (zh) * | 2019-12-23 | 2020-06-05 | 宁波和利时信息安全研究院有限公司 | 一种控制器的启动装置及控制器 |
CN111722878A (zh) * | 2020-06-19 | 2020-09-29 | 北京集创北方科技股份有限公司 | 芯片启动控制方法、芯片、显示面板及电子设备 |
WO2022237551A1 (zh) * | 2021-05-12 | 2022-11-17 | 华为技术有限公司 | 安全启动装置及方法 |
WO2023029826A1 (zh) * | 2021-08-30 | 2023-03-09 | 华为技术有限公司 | 一种启动文件校验方法、校验组件及设备 |
CN114237676A (zh) * | 2021-12-28 | 2022-03-25 | 湖南云箭智能科技有限公司 | 一种fpga逻辑更新方法、装置、设备及可读存储介质 |
CN114912397A (zh) * | 2022-05-31 | 2022-08-16 | 上海阵量智能科技有限公司 | 可编程逻辑器件、原型验证系统、方法、设备及存储介质 |
CN115061844A (zh) * | 2022-06-20 | 2022-09-16 | 长沙硕博电子科技股份有限公司 | Plc嵌入式软件的启动方法、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116719583A (zh) | 2023-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11294660B2 (en) | Apparatus and method for configuring or updating programmable logic device | |
US5729683A (en) | Programming memory devices through the parallel port of a computer system | |
US20190179644A1 (en) | Data Loading System | |
CN110837485B (zh) | 接口配置方法、装置、电子器件以及电子设备 | |
JP2004118544A (ja) | メモリシステム | |
CN111142914B (zh) | 一种基于zynq固件升级的方法及计算机可读存储介质 | |
JP6287350B2 (ja) | 情報処理装置、リソース割当て方法、及び、プログラム | |
CN116719583B (zh) | 一种启动方法、可编程逻辑器件、计算设备及存储介质 | |
US5884074A (en) | Microcomputer utilizing flash memory for data storage | |
CN211979671U (zh) | 平台芯片和芯片验证平台 | |
CN206515777U (zh) | 一种复位控制系统及用于pcie插卡复位的控制电路 | |
US8510485B2 (en) | Low power digital interface | |
CN111405534B (zh) | 信息传输方法、第一终端及计算机存储介质 | |
US5214423A (en) | Random number generation using volatile RAM | |
JP5179834B2 (ja) | 半導体装置及びデータ処理システム | |
CN110740085A (zh) | 一种基于并机系统的通信方法、通信装置及终端 | |
CN214751393U (zh) | 微控制器和计算系统 | |
CN113051212A (zh) | 图形处理器、数据传输方法、装置、电子设备和存储介质 | |
CN106506714B (zh) | Usb转以太网网卡的配置方法、网络设备 | |
JP2000242517A (ja) | 半導体記憶装置 | |
CN112214229B (zh) | 一种基于usb通信的车辆多控制器软件升级的系统、方法和车辆 | |
CN217721604U (zh) | 一种可拓展功能验证开发子板 | |
US20230083523A1 (en) | Multi-processor system and booting method thereof | |
CN209784996U (zh) | 控制电路 | |
CN117370099A (zh) | 微处理芯片及代码下载方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |