CN116088948B - 片上系统从闪存内原地执行的方法、电子装置和存储介质 - Google Patents
片上系统从闪存内原地执行的方法、电子装置和存储介质 Download PDFInfo
- Publication number
- CN116088948B CN116088948B CN202211715336.7A CN202211715336A CN116088948B CN 116088948 B CN116088948 B CN 116088948B CN 202211715336 A CN202211715336 A CN 202211715336A CN 116088948 B CN116088948 B CN 116088948B
- Authority
- CN
- China
- Prior art keywords
- flash memory
- protocol state
- chip
- execution
- preset
- 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
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/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/24—Resetting means
-
- 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/7807—System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
- G06F15/7821—Tightly coupled to memory, e.g. computational memory, smart memory, processor in memory
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及闪存原地执行的控制流程技术领域,提供了一种片上系统从闪存内原地执行的方法、电子装置和存储介质,通过片上系统的子系统复位之后,在执行启动流程时,暂停执行原地执行流程;对所述闪存内的交互协议状态进行检测,得到检测结果;根据所述检测结果判断是否需要将所述闪存切换至预设协议状态,得到判断结果;根据所述判断结果控制所述原地执行流程的重新执行,从而,能够实现片上系统的子系统启动流程中的模式检测功能和模式自适应,能够解决片上系统的子系统中遇到的热重启宕机问题,在实际工程应用中表现出比较强的兼容性与可靠性。
Description
技术领域
本申请涉及闪存原地执行的控制流程技术领域,特别地涉及一种片上系统从闪存内原地执行的方法、电子装置和存储介质。
背景技术
片上系统(System On Chip,SoC)复位后执行原地执行(Execute In Place,XIP)流程时,按照某一固定串行外围接口(Serial Peripheral Interface,SPI)协议执行取值指令操作,然而由于外接的闪存(FLASH)芯片在SoC子系统被动复位的情况下可能没有一同复位,闪存芯片可能处于非默认传输协议状态,此时SoC子系统复位之后仍然按照默认协议与闪存交互。由于双方使用不同的握手协议,导致SoC子系统无法获取正确的启动代码,系统处于宕机状态。
发明内容
为了解决或至少部分地解决上述技术问题,本申请提供了一种片上系统从闪存内原地执行的方法、电子装置和存储介质,能够对闪存内的交互协议状态进行检测,能够在执行启动流程时暂停住原地执行流程,更好地控制原地执行流程,以保证重启后原地执行流程能够顺利执行。
第一方面,本申请提供了一种片上系统从闪存内原地执行的方法,应用于片上系统,所述片上系统包括处理器;所述片上系统外接有闪存;所述方法包括:
所述片上系统的子系统复位之后,在执行启动流程时,暂停执行原地执行流程;
对所述闪存内的交互协议状态进行检测,得到检测结果;
根据所述检测结果判断是否需要将所述闪存切换至预设协议状态,得到判断结果;
根据所述判断结果控制所述原地执行流程的重新执行。
可选地,所述片上系统还包括闪存接口控制器,所述闪存包括闪存控制器,所述对闪存内的交互协议状态进行检测,得到检测结果,包括:
通过所述闪存接口控制器发送协议状态探测指令至所述闪存控制器;
获取所述闪存控制器根据所述协议状态探测指令反馈的检测结果。
可选地,所述协议状态探测指令携带操作码,所述协议状态探测指令用于指示所述闪存控制器根据所述操作码收集状态寄存器信息;根据所述状态寄存器信息确定所述闪存当前的协议族类型,得到类型信息;将所述类型信息作为所述检测结果反馈至所述闪存接口控制器。
可选地,所述根据所述检测结果判断是否需要将所述闪存切换至预设协议状态,得到判断结果,包括:
将所述类型信息与预设置值进行比较;
若所述类型信息与所述预设置值一致,则表明所述闪存的当前协议状态为预设协议状态,不需要将所述闪存切换至预设协议状态;
若所述类型信息与所述预设置值不一致,则表明所述闪存的当前协议状态不为预设协议状态,需要将所述闪存切换至预设协议状态。
可选地,所述方法还包括:
通过外部硬件引脚信号判断是否需要对所述闪存内的交互协议状态进行检测;
若否,则进入所述原地执行流程;
若是,则执行所述在执行启动流程时,暂停执行所述原地执行流程的步骤。
可选地,所述暂停执行原地执行流程之后,所述方法还包括:
拉低先进高性能总线准备信号。
可选地,所述根据所述判断结果控制所述原地执行流程的重新执行包括:
若所述判断结果为不需要将所述闪存切换至预设协议状态,则释放所述先进高性能总线的控制权;
重新执行所述原地执行流程。
可选地,所述根据所述判断结果控制所述原地执行流程的重新执行包括:
若所述判断结果为需要将所述闪存切换至预设协议状态,则将所述闪存切换至所述预设协议状态;
判断所述闪存的当前协议状态是否为预设协议状态;
若否,则调整至所述将所述闪存切换至所述预设协议状态的步骤;
若是,则释放所述先进高性能总线的控制权;重新执行所述原地执行流程。
第二方面,本申请提供了一种电子装置,包括:处理器、闪存、闪存接口控制器和闪存控制器;所述处理器和所述闪存接口控制器设于片上系统中;所述闪存设于所述片上系统外部,所述闪存控制器设于所述闪存上;
所述处理器,用于在片上系统的子系统复位之后,片上系统执行启动流程时,暂停执行原地执行流程;
所述闪存接口控制器,用于通过与所述闪存控制器之间进行交互,对闪存内的交互协议状态进行检测,得到检测结果;
所述处理器还用于根据所述检测结果判断是否需要将闪存切换至预设协议状态,得到判断结果;根据所述判断结果控制所述原地执行流程的重新执行。
可选地,在所述通过与所述闪存控制器之间进行交互,对闪存内的交互协议状态进行检测,得到检测结果方面,所述闪存接口控制器具体用于:
发送协议状态探测指令至所述闪存控制器;
获取由所述闪存控制器根据所述协议状态探测指令反馈的检测结果。
可选地,在所述根据所述检测结果判断是否需要将所述闪存切换至预设协议状态,得到判断结果方面,所述处理器具体用于:
将所述类型信息与预设置值进行比较;
若所述类型信息与所述预设置值一致,则表明所述闪存的当前协议状态为预设协议状态,不需要将所述闪存切换至预设协议状态;
若所述类型信息与所述预设置值不一致,则表明所述闪存的当前协议状态不为预设协议状态,需要将所述闪存切换至预设协议状态。
可选地,在所述根据所述判断结果控制所述原地执行流程的执行方面,所述处理器具体用于:
若所述判断结果为不需要将所述闪存切换至预设协议状态,则释放所述先进高性能总线的控制权;
重新执行所述原地执行流程。
可选地,在所述根据所述判断结果控制所述原地执行流程的执行方面,所述处理器具体用于:
若所述判断结果为需要将所述闪存切换至预设协议状态,则将所述闪存切换至所述预设协议状态;
判断所述闪存的当前协议状态是否为预设协议状态;
若否,则调整至所述将所述闪存切换至所述预设协议状态的步骤;
若是,则释放所述先进高性能总线的控制权;重新执行所述原地执行流程。
可选地,所述闪存接口控制器还用于:
通过外部硬件引脚信号判断是否需要对所述闪存内的交互协议状态进行检测;
若否,则处理器进入所述原地执行流程;
若是,则处理器执行所述在执行启动流程时,暂停执行所述原地执行流程的步骤。
本申请的实施方式还提供了一种计算机可读存储介质,存储有程序指令,程序指令被计算机执行时使得计算机执行前述的片上系统从闪存内原地执行的方法。
本申请实施例还提供一种计算机程序产品,其中,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使计算机执行如本申请实施例中记载的任何一种片上系统从闪存内原地执行的方法所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
本申请的实施方式通过片上系统的子系统复位之后,在执行启动流程时,暂停执行原地执行流程;对所述闪存内的交互协议状态进行检测,得到检测结果;根据所述检测结果判断是否需要将所述闪存切换至预设协议状态,得到判断结果;根据所述判断结果控制所述原地执行流程的重新执行,从而,能够实现片上系统SoC的子系统启动流程中的模式检测功能和模式自适应,能够解决片上系统的子系统中遇到的热重启宕机问题,在实际工程应用中表现出比较强的兼容性与可靠性。
附图说明
为了更清楚地说明本申请的实施方式,下面将对相关的附图做出简单介绍。可以理解,下面描述中的附图仅用于示意本申请的一些实施方式,本领域普通技术人员还可以根据这些附图获得本文中未提及的许多其他的技术特征和连接关系等。
图1为本申请实施方式所提供的一种电子装置的部分结构示意图;
图2为本申请实施方式所提供的第一类协议族检测具体流程与时序图;
图3为本申请实施方式所提供的第二类协议族检测具体流程与时序图;
图4为本申请实施方式所提供的一种关节弯曲角度的演示示意图;
图5为本申请实施方式所提供的一种片上系统从闪存内原地执行的方法的流程示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置显示该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
片上系统SoC是在单个芯片上集成一个完整的系统,非易失闪存(NOR FLASH)传输效率高,小容量时具有很高的成本效益;原地执行XIP流程是指直接从NOR FLASH中读取程序指令,然后进行译码或执行,整个XIP过程不必将代码复制到随机存取存储器(RandomAccess Memory,RAM)中,而是直接在闪存FLASH中执行,RAM中只存放需要不断变化的数据部分,正是由于上述特性,原地执行XIP流程只能按照固定的标准SPI协议交互。但是由于图形处理器(graphics processing unit,GPU)等芯片在任何时刻都可能收到来自上位机的热复位信号,导致整个GPU子系统自动进入重启流程,在此之前,如果闪存FLASH芯片被固件置成非标准SPI模式就会导致GPU子系统无法正常启动。基于此,本方案提出了一种片上系统从闪存内原地执行的方法,以便能够在任何情况下顺利恢复GPU子系统启动流程。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行详细说明。
如图1所示,本申请的一种实施方式提出了一种电子装置,图1为本申请实施方式所提供的一种电子装置的部分结构示意图,电子装置100包括:处理器10、闪存20和闪存接口控制器30;所述处理器10和所述闪存接口控制器30设于片上系统110中;所述闪存20设于所述片上系统110外部,闪存20包含闪存控制器21;
所述处理器10,用于在片上系统110的子系统复位之后,片上系统110执行启动流程时,暂停执行原地执行XIP流程;
所述闪存接口控制器30,用于通过与所述闪存控制器21之间进行交互,对闪存20内的交互协议状态进行检测,得到检测结果;
所述处理器10还用于根据所述检测结果判断是否需要将闪存切换至预设协议状态,得到判断结果;根据所述判断结果控制所述原地执行流程的重新执行。
其中,片上系统SoC包括用于控制或执行不同功能的一个或多个子系统,例如,中央处理单元、图形处理单元等,处理器例如可以为中央处理器(Central Processing Unit,CPU),当前主流的NOR FLASH数据交互能够支持Standard/Dual/Quad串行外围接口SPI,快速通道互联(QuickPath Interconnect,QPI)等传输协议。
本方案在SoC子系统设计之初主动在闪存接口控制器中加入闪存的交互协议检测机制,通过该机制SoC子系统能够在执行启动流程时暂停执行XIP流程,并对闪存内的交互协议状态进行检测,得到检测结果,其中,检测结果用于指示闪存当前的协议族类型,以判断闪存的当前协议状态是否为预设协议状态,进而根据检测结果判断是否需要将闪存切换至预设协议状态,得到判断结果;根据判断结果控制原地执行流程的重新执行,从而,能够实现片上系统SoC的子系统启动流程中的模式检测功能和模式自适应,能够解决片上系统的子系统中遇到的热重启宕机问题,在实际工程应用中表现出比较强的兼容性与可靠性。
可选地,在所述通过与所述闪存控制器之间进行交互,对闪存内的交互协议状态进行检测,得到检测结果方面,所述闪存接口控制器30具体用于:
发送协议状态探测指令至所述闪存控制器;
获取由所述闪存控制器根据所述协议状态探测指令反馈的检测结果。
其中,协议状态探测指令携带操作码,协议状态探测指令用于指示闪存控制器根据操作码收集状态寄存器信息;根据状态寄存器信息确定闪存当前的协议族类型,得到类型信息;将类型信息作为检测结果反馈至所述闪存接口控制器。
具体地,在闪存与片上系统之间采用串行外围接口SPI时,对闪存内的交互协议状态进行检测,包括但不限于标准/双线/四线SPI与QPI协议的识别,可将串行外围接口SPI进行交互的协议分成两大类:第一类为标准/双线SPI协议族,第二类为四线SPI/QPI协议族,其中,可以通过闪存接口控制器30发送操作码给FLASH控制器,以获取当前闪存处于哪一大类协议状态,如图2和图3所示,图2为本申请实施例提供的第一类协议族检测的具体流程与时序图,图3为第二类协议族检测的具体流程与时序图,从而能通过闪存接口控制器30主动发送协议状态探测指令闪存控制器会根据该指令反馈的检测结果来决定是否需要将闪存切换至预设协议状态。
可选地,在所述根据所述检测结果判断是否需要将所述闪存切换至预设协议状态,得到判断结果方面,所述处理器具体用于:
将所述类型信息与预设置值进行比较;
若所述类型信息与所述预设置值一致,则表明所述闪存的当前协议状态为预设协议状态,不需要将所述闪存切换至预设协议状态;
若所述类型信息与所述预设置值不一致,则表明所述闪存的当前协议状态不为预设协议状态,需要将所述闪存切换至预设协议状态。
其中,闪存控制器可以收集状态寄存器(status register)信息,确认当前闪存处于哪一类协议族状态,闪存接口控制器将当前得到的检测结果与预设置值比较,如果两者一致则认为无需将闪存切换至预设协议状态,反之则需要闪存接口控制器发送模式切换指令,以将闪存切换至预设协议状态。
可选地,闪存接口控制器还用于通过外部硬件引脚信号判断是否需要对所述闪存内的交互协议状态进行检测;若否,则处理器进入所述原地执行流程;若是,则处理器执行所述在执行启动流程时,暂停执行所述原地执行流程的步骤。
其中,通过外部硬件引脚信号,可以判断是否需要对闪存内的交互协议状态进行检测。
其中,暂停执行原地执行流程之后,所述处理器还用于拉低先进高性能总线准备信号,先进高性能总线(Advanced High Performance BUS,AHB)是一种总线接口,AHB主要用于高性能模块之间的连接,作为SoC的片上系统总线。
可选地,在所述根据所述判断结果控制所述原地执行流程的执行方面,所述处理器具体用于:
若所述判断结果为不需要将所述闪存切换至预设协议状态,则释放所述先进高性能总线的控制权;
重新执行所述原地执行流程。
其中,通过拉高先进高性能总线准备信号,可以释放闪存接口控制器对AHB总线的控制权,使SoC子系统重新启动暂停住的XIP流程。
可选地,在所述根据所述判断结果控制所述原地执行流程的执行方面,所述处理器具体用于:
若所述判断结果为需要将所述闪存切换至预设协议状态,则将所述闪存切换至所述预设协议状态;
判断所述闪存的当前协议状态是否为预设协议状态;
若否,则调整至所述将所述闪存切换至所述预设协议状态的步骤;
若是,则释放所述先进高性能总线的控制权;重新执行所述原地执行流程。
其中,通过将闪存切换至预设协议状态,可以保证原地执行流程能够正常重新执行,若不需要将闪存切换至预设协议状态,也能实现原地执行流程能够正常重新执行。
本实施方式,通过片上系统的子系统复位之后,在执行启动流程时,暂停执行原地执行流程;对所述闪存内的交互协议状态进行检测,得到检测结果;根据所述检测结果判断是否需要将所述闪存切换至预设协议状态,得到判断结果;根据所述判断结果控制所述原地执行流程的重新执行,从而,能够实现片上系统SoC的子系统启动流程中的模式检测功能和模式自适应,能够解决片上系统的子系统中遇到的热重启宕机问题,在实际工程应用中表现出比较强的兼容性与可靠性。
如图4所示,图4为本申请实施方式所提供的一种片上系统从闪存内原地执行的方法的流程示意图,本申请的一种实施方式提出了一种片上系统从闪存内原地执行的方法,应用于片上系统,所述片上系统包括处理器;所述片上系统外接有闪存;所述方法包括如下步骤:
101、片上系统的子系统复位之后,在执行启动流程时,暂停执行原地执行流程;
其中,片上系统中,处理器执行原地执行流程,直接从闪存中读取程序指令,然后进行译码或执行,整个过程不必将代码复制到主存储器RAM中,而是直接在闪存中执行,RAM中只存放需要不断变化的数据部分,SoC的子系统复位之后,系统自动进入重启流程,在重启流程执行之初,可以暂停原地执行流程。
102、对所述闪存内的交互协议状态进行检测,得到检测结果;
其中,检测结果包括用于指示闪存当前的协议族类型的类型信息,串行外围接口SPI进行交互的协议分成两大类:第一类为标准/双线SPI协议族,第二类为四线SPI/QPI协议族,检测结果可以指示闪存当前的协议族类型是第一类或第二类。
103、根据所述检测结果判断是否需要将所述闪存切换至预设协议状态,得到判断结果;
具体地,在确定包含闪存当前的协议族类型的类型信息的检测结果后,可以根据该检测结果判断是否需要将闪存切换至预设协议状态,得到判断结果。
104、根据所述判断结果控制所述原地执行流程的重新执行。
其中,若需要将闪存切换至预设协议状态,则可以先将闪存切换至预设协议状态,再重新执行原地执行流程;若不需要将闪存切换至预设协议状态,则可以直接重新执行原地执行流程。
可以理解的是,本实施例中方法步骤的具体实施细节,可以参考前述电子装置中的具体实施细节,此处不再赘述。
本申请的片上系统从闪存内原地执行的方法,通过片上系统的子系统复位之后,在执行启动流程时,暂停执行原地执行流程;对所述闪存内的交互协议状态进行检测,得到检测结果;根据所述检测结果判断是否需要将所述闪存切换至预设协议状态,得到判断结果;根据所述判断结果控制所述原地执行流程的重新执行,从而,能够实现片上系统SoC的子系统启动流程中的模式检测功能和模式自适应,能够解决片上系统的子系统中遇到的热重启宕机问题,在实际工程应用中表现出比较强的兼容性与可靠性。
本申请的另一实施方式同样提出了一种片上系统从闪存内原地执行的方法,应用于片上系统,所述片上系统包括处理器;所述片上系统外接有闪存;如图5所示,所述方法包括如下步骤:
201、片上系统的子系统热复位;
202、片上系统的子系统复位之后,通过外部硬件引脚信号判断是否需要对所述闪存内的交互协议状态进行检测;
203、若否,则进入所述原地执行流程;结束;
204、若是,在执行启动流程时,暂停执行原地执行流程;执行步骤205;
205、拉低先进高性能总线准备信号;
206、对所述闪存内的交互协议状态进行检测,得到检测结果;
其中,检测结果包括用于指示闪存当前的协议族类型的类型信息,串行外围接口SPI进行交互的协议分成两大类:第一类为标准/双线SPI协议族,第二类为四线SPI/QPI协议族,检测结果可以指示闪存当前的协议族类型是第一类或第二类。
可选地,所述片上系统还包括闪存接口控制器,所述闪存包括闪存控制器,所述对闪存内的交互协议状态进行检测,得到检测结果,包括:
通过所述闪存接口控制器发送协议状态探测指令至所述闪存控制器;
获取所述闪存控制器根据所述协议状态探测指令反馈的检测结果。
其中,协议状态探测指令携带操作码,协议状态探测指令用于指示闪存控制器根据操作码收集状态寄存器信息;根据状态寄存器信息确定闪存当前的协议族类型,得到类型信息;将类型信息作为检测结果反馈至所述闪存接口控制器。
具体地,在闪存与片上系统之间采用串行外围接口SPI时,对闪存内的交互协议状态进行检测,包括但不限于标准/双线/四线SPI与QPI协议的识别,可将串行外围接口SPI进行交互的协议分成两大类:第一类为标准/双线SPI协议族,第二类为四线SPI/QPI协议族,其中,可以通过闪存接口控制器30发送操作码给FLASH控制器,以获取当前闪存处于哪一大类协议状态,如图2和图3所示,图2为本申请实施例提供的第一类协议族检测具体流程与时序图,图3为第二类协议族检测具体流程与时序图,从而能通过闪存接口控制器30主动发送协议状态探测指令,闪存控制器会根据该指令反馈的检测结果来决定是否需要将闪存切换至预设协议状态。
207、根据检测结果判断是否需要将闪存切换至预设协议状态;
SoC的子系统复位之后,系统自动进入重启流程,在重启流程执行之初,闪存接口控制器可通过外部硬件引脚信号判断是否对闪存内的交互协议状态进行检测,如果检测发现无需对闪存内的交互协议状态进行检测,则自动进入XIP流程,否则在执行启动流程时暂停住XIP流程,并拉低AHB总线ready信号,并通过闪存接口控制器主动发送协议状态探测指令,闪存接口控制器能够根据协议状态探测指令反馈的检测结果判断闪存的当前协议状态是否为预设协议状态,进而判断是否需要将所述闪存切换至预设协议状态。
可选地,所述根据所述检测结果判断是否需要将所述闪存切换至预设协议状态,得到判断结果,包括:
将所述类型信息与预设置值进行比较;
若所述类型信息与所述预设置值一致,则表明所述闪存的当前协议状态为预设协议状态,不需要将所述闪存切换至预设协议状态;
若所述类型信息与所述预设置值不一致,则表明所述闪存的当前协议状态不为预设协议状态,需要将所述闪存切换至预设协议状态。
其中,闪存控制器可以收集状态寄存器(status register)信息,确认当前闪存处于哪一类协议族状态,闪存接口控制器将当前得到的检测结果与预设置值比较,如果两者一致则认为无需将闪存切换至预设协议状态,反之则需要闪存接口控制器发送模式切换指令,以将闪存切换至预设协议状态。
208、若不需要将所述闪存切换至预设协议状态,则释放所述先进高性能总线的控制权;重新执行所述原地执行流程;
209、若所述判断结果为需要将所述闪存切换至预设协议状态,则将所述闪存切换至所述预设协议状态;
其中,通过将闪存切换至预设协议状态,可以保证原地执行流程能够正常重新执行,若不需要将闪存切换至预设协议状态,也能实现原地执行流程能够正常重新执行。
210、判断所述闪存的当前协议状态是否为预设协议状态;若否,则跳转至步骤209,将所述闪存切换至所述预设协议状态;若是,则跳转至步骤208,以重新执行所述原地执行流程。
本申请的片上系统从闪存内原地执行的方法,通过片上系统的子系统复位之后,在重启流程执行之初,闪存接口控制器可通过外部硬件引脚信号判断是否对闪存内的交互协议状态进行检测,如果检测发现无需对闪存内的交互协议状态进行检测,则自动进入XIP流程,否则在执行启动流程时暂停住XIP流程,并拉低AHB总线ready信号,并通过闪存接口控制器主动发送协议状态探测指令,闪存接口控制器能够根据协议状态探测指令反馈的检测结果判断闪存的当前协议状态是否为预设协议状态,进而判断是否需要将所述闪存切换至预设协议状态,得到判断结果;根据判断结果控制原地执行流程的重新执行。从而能够实现片上系统SoC的子系统启动流程中的模式检测功能和模式自适应,能够解决片上系统的子系统中遇到的热重启宕机问题,在实际工程应用中表现出比较强的兼容性与可靠性。
本申请的实施方式还提供了一种计算机可读存储介质,存储有程序指令,程序指令被计算机执行时使得计算机执行前述片上系统从闪存内原地执行的方法。
本申请实施例还提供一种计算机程序产品,其中,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使计算机执行如本申请实施例中记载的任何一种片上系统从闪存内原地执行的方法所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
本领域技术人员应明白,本申请的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。计算机程序存储/分布在合适的介质中,与其它硬件一起提供或作为硬件的一部分,也可以采用其他分布形式,如通过Internet或其它有线或无线电信系统。
本申请是参照本申请实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程人车轨迹分析设备的处理器以产生一个机器,使得通过计算机或其他可编程人车轨迹分析设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程人车轨迹分析设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程人车轨迹分析设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种片上系统从闪存内原地执行的方法,其特征在于,应用于片上系统,所述片上系统包括处理器和闪存接口控制器;所述片上系统外接有闪存,所述闪存包括闪存控制器;所述方法包括:
所述片上系统的子系统复位之后,在执行启动流程时,暂停执行原地执行流程;
对所述闪存内的交互协议状态进行检测,得到检测结果,包括:通过所述闪存接口控制器发送协议状态探测指令至所述闪存控制器;获取所述闪存控制器根据所述协议状态探测指令反馈的检测结果;其中,所述协议状态探测指令携带操作码,所述协议状态探测指令用于指示所述闪存控制器根据所述操作码收集状态寄存器信息,根据所述状态寄存器信息确定所述闪存当前的协议族类型,得到类型信息,以及将所述类型信息作为所述检测结果反馈至所述闪存接口控制器;
根据所述检测结果判断是否需要将所述闪存切换至预设协议状态,得到判断结果,包括:将所述类型信息与预设置值进行比较;若所述类型信息与所述预设置值一致,则表明所述闪存的当前协议状态为预设协议状态,不需要将所述闪存切换至预设协议状态;若所述类型信息与所述预设置值不一致,则表明所述闪存的当前协议状态不为预设协议状态,需要将所述闪存切换至预设协议状态;
根据所述判断结果控制所述原地执行流程的重新执行。
2.根据权利要求1所述的片上系统从闪存内原地执行的方法,其特征在于,所述方法还包括:
通过外部硬件引脚信号判断是否需要对所述闪存内的交互协议状态进行检测;
若否,则进入所述原地执行流程;
若是,则执行所述在执行启动流程时,暂停执行所述原地执行流程的步骤。
3.根据权利要求2所述的片上系统从闪存内原地执行的方法,其特征在于,所述暂停执行原地执行流程之后,所述方法还包括:
拉低先进高性能总线准备信号。
4.根据权利要求3所述的片上系统从闪存内原地执行的方法,其特征在于,所述根据所述判断结果控制所述原地执行流程的重新执行包括:
若所述判断结果为不需要将所述闪存切换至预设协议状态,则释放所述先进高性能总线的控制权;
重新执行所述原地执行流程。
5.根据权利要求3所述的片上系统从闪存内原地执行的方法,其特征在于,所述根据所述判断结果控制所述原地执行流程的重新执行包括:
若所述判断结果为需要将所述闪存切换至预设协议状态,则将所述闪存切换至所述预设协议状态;
判断所述闪存的当前协议状态是否为预设协议状态;
若否,则调整至所述将所述闪存切换至所述预设协议状态的步骤;
若是,则释放所述先进高性能总线的控制权;重新执行所述原地执行流程。
6.一种电子装置,其特征在于,包括:处理器、闪存和闪存接口控制器,所述闪存包括闪存控制器;所述处理器和所述闪存接口控制器设于片上系统中;所述闪存设于所述片上系统外部;
所述处理器,用于在片上系统的子系统复位之后,片上系统执行启动流程时,暂停执行原地执行流程;
所述闪存接口控制器,用于通过与所述闪存控制器之间进行交互,对闪存内的交互协议状态进行检测,得到检测结果,包括:发送协议状态探测指令至所述闪存控制器;获取由所述闪存控制器根据所述协议状态探测指令反馈的检测结果;其中,所述协议状态探测指令携带操作码,所述协议状态探测指令用于指示所述闪存控制器根据所述操作码收集状态寄存器信息,根据所述状态寄存器信息确定所述闪存当前的协议族类型,得到类型信息,以及将所述类型信息作为所述检测结果反馈至所述闪存接口控制器;
所述处理器还用于根据所述检测结果判断是否需要将闪存切换至预设协议状态,得到判断结果,包括:将所述类型信息与预设置值进行比较;若所述类型信息与所述预设置值一致,则表明所述闪存的当前协议状态为预设协议状态,不需要将所述闪存切换至预设协议状态;若所述类型信息与所述预设置值不一致,则表明所述闪存的当前协议状态不为预设协议状态,需要将所述闪存切换至预设协议状态;
所述处理器还用于根据所述判断结果控制所述原地执行流程的重新执行。
7.根据权利要求6所述的电子装置,其特征在于,在所述根据所述判断结果控制所述原地执行流程的重新执行方面,所述处理器用于:
若所述判断结果为不需要将所述闪存切换至预设协议状态,则释放先进高性能总线的控制权;
重新执行所述原地执行流程。
8.根据权利要求7所述的电子装置,其特征在于,在所述根据所述判断结果控制所述原地执行流程的执行方面,所述处理器用于:
若所述判断结果为需要将所述闪存切换至预设协议状态,则将所述闪存切换至所述预设协议状态;
判断所述闪存的当前协议状态是否为预设协议状态;
若否,则调整至所述将所述闪存切换至所述预设协议状态的步骤;
若是,则释放所述先进高性能总线的控制权;重新执行所述原地执行流程。
9.根据权利要求8所述的电子装置,其特征在于,所述闪存接口控制器还用于:
通过外部硬件引脚信号判断是否需要对所述闪存内的交互协议状态进行检测;
若否,则处理器进入所述原地执行流程;
若是,则处理器执行所述在执行启动流程时,暂停执行所述原地执行流程的步骤。
10.一种计算机可读存储介质,存储有程序指令,其特征在于,所述程序指令被计算机执行时使得所述计算机执行权利要求1至5中任一项所述的片上系统从闪存内原地执行的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211715336.7A CN116088948B (zh) | 2022-12-28 | 2022-12-28 | 片上系统从闪存内原地执行的方法、电子装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211715336.7A CN116088948B (zh) | 2022-12-28 | 2022-12-28 | 片上系统从闪存内原地执行的方法、电子装置和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116088948A CN116088948A (zh) | 2023-05-09 |
CN116088948B true CN116088948B (zh) | 2023-08-22 |
Family
ID=86207604
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211715336.7A Active CN116088948B (zh) | 2022-12-28 | 2022-12-28 | 片上系统从闪存内原地执行的方法、电子装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116088948B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105320901A (zh) * | 2015-03-25 | 2016-02-10 | 北京国睿中数科技股份有限公司 | 支持多种闪存加密存储的启动固件的执行方法 |
CN108563590A (zh) * | 2018-06-28 | 2018-09-21 | 北京智芯微电子科技有限公司 | 基于片上flash存储器的otp控制器和控制方法 |
CN111414322A (zh) * | 2020-03-19 | 2020-07-14 | 江苏芯盛智能科技有限公司 | 一种Nand flash接口工作协议自适应方法、系统、设备及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9367107B2 (en) * | 2011-10-19 | 2016-06-14 | Psion Inc. | Method and system for controlling reset state change in a system-on-a-chip device |
CN110955387B (zh) * | 2019-10-25 | 2023-10-24 | 合肥沛睿微电子股份有限公司 | 自适应识别闪存类型方法及计算机可读取存储介质及装置 |
-
2022
- 2022-12-28 CN CN202211715336.7A patent/CN116088948B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105320901A (zh) * | 2015-03-25 | 2016-02-10 | 北京国睿中数科技股份有限公司 | 支持多种闪存加密存储的启动固件的执行方法 |
CN108563590A (zh) * | 2018-06-28 | 2018-09-21 | 北京智芯微电子科技有限公司 | 基于片上flash存储器的otp控制器和控制方法 |
CN111414322A (zh) * | 2020-03-19 | 2020-07-14 | 江苏芯盛智能科技有限公司 | 一种Nand flash接口工作协议自适应方法、系统、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116088948A (zh) | 2023-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100990188B1 (ko) | Mmc/sd 기기로부터 호스트 기기를 부팅시키는 방법, mmc/sd 기기로부터 부팅 가능한 호스트 기기 및 호스트 기기가 부팅되는 mmc/sd 기기 방법 | |
US8458524B2 (en) | Firmware recovery system and method | |
CN105354070B (zh) | 一种通过i2c升级设备固件的方法 | |
US9514070B2 (en) | Debug control circuit | |
CN104133709B (zh) | 嵌入式系统的升级方法和装置 | |
WO2019140656A1 (zh) | 一种固件升级方法、装置、电子设备及控制设备 | |
CN113590511B (zh) | 一种带宽降速修复方法、装置及电子设备 | |
CN111176739A (zh) | 一种系统启动方法、装置、设备及存储介质 | |
CN105760191A (zh) | 嵌入式系统设备程序烧写量产方法 | |
CN113419926B (zh) | 一种服务器bios启动进程的监测方法、系统及装置 | |
TWI483117B (zh) | 用於執行命令之裝置、主機控制器及用於執行命令之系統 | |
CN116088948B (zh) | 片上系统从闪存内原地执行的方法、电子装置和存储介质 | |
CN112416411A (zh) | 升级方法及装置、设备端、服务器、计算机可读介质 | |
CN115904793B (zh) | 一种基于多核异构系统的内存转存方法、系统及芯片 | |
WO2017121077A1 (zh) | 一种双引导文件的切换方法及装置 | |
CN115951949A (zh) | 一种bios的配置参数的恢复方法、装置及计算设备 | |
CN115167933A (zh) | 一种双处理器设备及其控制方法和处理器 | |
CN115098342A (zh) | 系统日志收集方法、系统、终端及存储介质 | |
US9655052B2 (en) | Storage medium having stored communication program, information processing apparatus, communication system, and communication method | |
CN114237722A (zh) | 一种系统的启动方法、装置、设备及工程车辆 | |
US20140136744A1 (en) | Reset method and network device | |
CN113126883B (zh) | 一种数据处理方法、系统及存储介质 | |
JP2001209551A (ja) | オペレーティングシステム制御装置、オペレーティングシステム制御方法及び、その記録媒体 | |
JP2012203655A (ja) | マイクロコンピュータ | |
CN114327289B (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 |