CN105190551B - 具有存储器区域交换机制的双引导系统 - Google Patents
具有存储器区域交换机制的双引导系统 Download PDFInfo
- Publication number
- CN105190551B CN105190551B CN201480014047.1A CN201480014047A CN105190551B CN 105190551 B CN105190551 B CN 105190551B CN 201480014047 A CN201480014047 A CN 201480014047A CN 105190551 B CN105190551 B CN 105190551B
- Authority
- CN
- China
- Prior art keywords
- memory
- instruction
- opcode
- processing unit
- central processing
- 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
Images
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
-
- 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/4406—Loading of operating system
- G06F9/441—Multiboot arrangements, i.e. selecting an operating system to be loaded
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明揭示一种具有双引导能力的中央处理单元,其包括指令存储器,所述指令存储器进一步包括经配置为单独可编程的第一存储器区域及第二存储器区域,其中可将第一存储器区域及第二存储器区域分别指派到从中执行指令的活动存储器及非活动存储器。针对中央处理单元的指令集包括允许执行从活动存储器区域到非活动存储器区域的交换的专用指令,其中通过在所述活动存储器中执行所述专用指令之后接着在所述活动存储器中执行程序流改变指令来执行所述交换,于是所述非活动存储器成为新活动存储器且所述活动存储器成为新非活动存储器且在所述新活动存储器中继续执行指令。
Description
相关申请案的交叉参考
此申请案主张2013年3月14日申请的第61/780,990号美国临时申请案的权益,所述申请案以全文引用的方式并入本文中。
技术领域
本发明涉及一种双引导面板交换机制,特定来说,涉及一种为微控制器提供实时更新的双引导面板交换机制。
发明内容
根据各种实施例,提供机制以允许用户在无需复位主机装置的情况下切换到新的代码图像。因此,可消除复位主机装置的需要且可将切换到新的代码图像的延时降低到几个CPU周期(举例来说,当已执行固件代码更新时)。
根据各种实施例,此适当配置的主机装置可允许顾客在无需停止应用程序的执行的情况下重新刷新所述装置且切换到新的代码图像。举例来说,如果在例如切换模式电源供应器(SMPS)或电动机控制器等实时约束应用程序中采用主机装置,那么此方法可为有益的。此方法还允许外围设备在发生切换时继续运行。电动机控制应用程序及切换模式电源供应器(SMPS)应用程序可尤其得益于在所述主机装置的重新刷新期间的继续执行及外围操作。
根据各种实施例,可在微控制器或处理器内提供构件以在无需复位且对异常时序具有最小影响的情况下在装置内交换作为常规指令流的部分的两个代码图像且交换速度尽可能快。
根据各种实施例,针对微控制器或处理器的中央处理单元(CPU)及相关联机制提供固有指令(举例来说,使用助记符BOOTSWP)以在无需复位所述装置的情况下迫使代码图像交换。根据一些实施例,所述图像交换可为暂时的(举例来说,在装置复位之后将不选择新活动图像且所述装置将回复到其它图像)。根据特定实施例,所述图像交换可为持续的(举例来说,在装置复位之后将选择新活动图像)。
根据各种实施例,可提供具有双引导能力的中央处理单元(CPU)。所述CPU可包括指令存储器,所述指令存储器进一步包括可经配置为单独可编程的第一存储器区域及第二存储器区域。可将第一存储器区域及第二存储器区域分别指派到从中执行指令的活动存储器及非活动存储器。所述CPU的指令集可包括执行从活动存储器区域到非活动存储器区域的交换的专用指令,其中通过在所述活动存储器中执行所述专用指令之后接着在所述活动存储器中执行程序流改变指令来执行所述交换,于是所述非活动存储器成为新活动存储器且所述活动存储器成为新非活动存储器且在所述新活动存储器中继续执行指令。
附图说明
图1说明根据特定实施例的基于微控制器的系统。
图2说明根据特定实施例的存储器布局。
图3说明根据特定实施例的另一存储器布局。
图4说明根据特定实施例的执行存储器交换的方法。
图5说明根据特定实施例的用于调用存储器交换操作的应用程序源代码。
图6描述根据特定实施例的特殊功能寄存器中的状态位。
图7描述根据特定实施例的特殊功能寄存器中的状态位。
图8描述根据特定实施例的特殊功能寄存器中的控制/状态位。
具体实施方式
在应用层处执行固件图像的基于软件的切换可为挑战性的。可在非常具有时效性的应用程序中进行此方法。
特定应用程序(称为“双引导”)需要从一个代码图像(活动)执行,同时更新/重新刷新另一代码图像(非活动)。一种配置允许可选择性地激活的至少两个分离存储器区域(面板)。在一种“双引导”配置中,对非活动面板的更新后接着是应用程序重启,在此期间“双引导”机制将使先前更新的非活动面板变成新活动面板。接着将从新活动面板开始代码执行。主机装置在检查一序列数目(举例来说,设定于非易失性存储器中)之后选择活动面板。此性质的复位序列可需要数十毫秒的停机时间,在此期间应用程序不执行或至少不执行全部功能。
存在使用新代码重新刷新/更新应用程序同时继续执行现有应用程序代码(举例来说,双引导能力)的需求。此外,尤其对于非常具有时效性的应用程序来说,存在在没有与装置复位相关联的延迟的情况下切换到经更新代码图像的需求。
图1说明根据特定实施例的基于微控制器的系统100。系统100包括微控制器101(其进一步包括中央处理单元(CPU)102及存储器103)及编程器104。系统100可为(举例来说)切换模式电源供应器(SMPS)控制器或电动机控制器。微控制器101可为(举例来说)MICROCHIP的dsPIC/PIC24系列微控制器系列内的型号,其具有处理核心、一或多个寄存器堆、板上随机存取存储器(RAM)、一或多个电源管理模式、集成模拟比较器及/或模/数转换器及针对标准输入/输出协议(例如通用串行总线及IEEE标准1149.1(JTAG))的芯片上控制器。存储器103可为非易失性存储器,例如快闪存储器或电可擦除可编程只读存储器(EEPROM)。编程器104可为外部可附接计算机系统,其提供将存储于存储器103中的新指令及/或数据。编程器104可经由串联连接(例如通用串行总线(USB)连接)连接。
CPU 102通过从存储器103提取指令及/或数据且执行这些指令来执行存储于存储器103中的程序。CPU 102可为(举例来说)精简指令集处理器或复杂指令集处理器。由CPU102执行的每一指令可包含操作代码及零或多个操作数。可将数据及地址编码到指令中或可从一或多个寄存器检索数据及地址。可将指令的结果存储于(举例来说)寄存器、RAM或存储器103。
存储器103可为随机存取的,意味着可在单一读周期中读取任何数据单元。存储器103可为块存取的,意味着针对数据字节的读请求可需要数据块(举例来说,512字节)的内部读取到缓冲器中。在一些实施例中,写入到空存储器位置可为立即的(举例来说,在单一写周期内)。在一些实施例中,写入到含有数据的存储器位置可需要在可进行写入之前的块擦除。
图2说明根据特定实施例的存储器103的存储器布局。在逻辑上,可将存储器103视为两个或两个以上面板200及210及测试区域220。每一面板200或210可包括识别为201、202、211及212的整数数目个存储器的连续逻辑页。存储器映射230说明存储器103的逻辑页到物理页(举例来说,物理页241到246)的映射。存储器映射230可包括未使用的物理页250及测试页260。微控制器101可进一步包括地址转换模块270。
逻辑页201、202、211及212分别映射到物理页241、242、245及246且受物理页241、242、245及246中的存储器的支持。
当执行应用程序时,微控制器101可从活动面板执行指令(且可读取数据)。如果活动面板为面板200(即,面板1),那么微控制器101可从逻辑页201提取指令,导致从物理页241的存储器读取。所提取的指令可为参考逻辑页202中的地址的加载指令。当微控制器101执行加载指令时,微控制器101将从逻辑页202读取值,导致从存储器103的物理页242的存储器读取。如果活动面板为面板210(即,面板2),那么由微控制器101从逻辑页211的提取将导致从物理页245的读取。
在特定实施例中,存储器103的一部分可未被使用从而导致一或多个未使用的物理页250。在特定实施例中,存储器103的一部分可含有测试指令及/或数据。此测试部分可通过映射到物理页260的逻辑测试区域220识别。测试部分可包含用于校准外围装置、验证系统或组件操作及调试应用程序代码的例程及/或数据。
在特定实施例中,地址转换模块270提供逻辑寻址到物理寻址的转换。在特定实施例中,地址转换模块270可为基于活动面板的指示符选择物理存储器103的一或多个组的多路复用器/多路分用器。在特定实施例中,地址转换模块270可为提供逻辑地址到物理地址转换的转换后备缓冲器(TLB)。
图3说明根据特定实施例的存储器103的存储器布局。在图3的配置中,逻辑面板300及310映射到存储器103,如在存储器映射330中说明。逻辑面板300及310可包括识别为301、302、311及312的存储器的整数数目个连续逻辑页。存储器103可包括物理页341、342、343、344。
存储器映射330说明逻辑页的交错布置。逻辑页301映射到第一物理页(页341)且逻辑页302映射到第三物理页(页343)。逻辑页311映射到第二物理页(页342)且逻辑页312映射到第四物理页(页344)。因此,在特定实施例中,面板1的逻辑页映射到第一、第三等等物理页,而面板2的逻辑页映射到第二、第四等等物理页。
图4说明根据特定实施例的用于执行存储器交换的方法。方法400包括步骤401到407,且在下文更详细描述其中每一者。方法400通常包括连续执行的步骤401、402、404、405、406及407以及平行步骤403。
在步骤401中,可将应用程序加载到面板1中。可由微控制器101(举例来说)从测试区域220执行初始化例程来执行步骤401。可由编程器104执行步骤401。
在步骤402中,微控制器101执行加载到面板1中的应用程序。应用程序可为(举例来说)从外围装置读取输入且至少部分基于该等输入确定电动机控制输出信号的电动机控制器程序。当微控制器101从面板1执行应用程序时,可执行步骤403。
在步骤403中,可将第二应用程序加载到面板2中。可由微控制器101在多处理模式中操作来执行步骤403。可由编程器104执行步骤403。步骤403可在步骤404开始之前完成以确保在尝试交换面板之前完整程序在面板2中可用。
在步骤404中,微控制器101可执行一或多个指令以启用面板交换功能性。一或多个指令的此序列可防止程序由于编程或编译错误而意外交换面板。在特定实施例中,步骤404涉及在预先确定时间窗内将两个预定值循序写入到指定存储器位置。
在步骤405中,微控制器101可执行含有指定面板交换操作的操作码(即,OPCODE)的指令。在步骤405中,微控制器101可更改状态寄存器值从而将活动面板改变为先前非活动面板(举例来说,在步骤403中加载有第二应用程序的面板2)。在特定实施例中,即使微控制器101随后复位或断电,面板2的激活仍可持续。在特定实施例中,当发生随后复位、电力周期或步骤404及405的执行时,面板2的激活可回复到面板1。在特定实施例中,面板交换操作需要逻辑面板数目的操作数以支持两个以上逻辑存储器面板。
在步骤406中,微控制器101可确定步骤405中的面板交换操作是否成功。如果是,则微控制器101可继续执行步骤407。如果不是,则微控制器101可继续执行步骤402,借此返回到仍为活动面板(举例来说,面板1)中的程序。
在特定实施例中,步骤405必须紧接步骤404的执行以防止面板交换操作的意外执行。在特定实施例中,可在步骤405与步骤406之间允许及/或需要指定数目的指令(或指令周期)。举例来说,指令可保存当前寄存器状态及/或恢复先前寄存器状态。以此方式,可使用所述面板交换操作以实施允许使用微控制器101的上下文切换以允许多处理(举例来说,虚拟并行处理)。
在特定实施例中,方法400可为可逆的,使得步骤401及402操作面板2且步骤403及407操作面板1。
图5说明根据特定实施例的用于调用存储器交换操作的应用程序源代码。列表500包括各自存储于不同面板中的指令序列501及505。指令序列502可执行启用所述面板交换指令所需的步骤。指令序列503可执行所述面板交换指令。在指令序列503成功执行的情况下,指令序列504可分支到指令序列505的进入点。标签506标记到指令序列505中的进入点。
指令序列502可为经设计以标记用以执行面板交换的编程器的意图的预定步骤序列。此序列可解锁软件联锁以确保不错误执行面板交换序列。在特定实施例中,执行指令序列502的微控制器101将第一常数值存储于寄存器W0中、将所述第一常数值写入到指定地址、将第二常数值存储于寄存器W0中且接着将所述第二常数值写入到指定地址。指令序列503包括BOOTSWP指令。
指令序列503(举例来说,特定实施例中的BOOTSWP指令)的执行可经受软件联锁。如果成功执行,那么微控制器101可设定状态旗标(举例来说,NVMCON.SOFTSWAP)。微控制器101还可在执行必要状态改变以激活先前非活动逻辑面板之前从当前活动面板提取指令序列504。一旦面板交换操作完成,微控制器101就可执行指令序列504以转移程序控制到指令序列505中的目标506。指令序列504可为单字程序流改变指令(PFC)。
如果未成功执行,那么微控制器可将BOOTSWP指令处理为两周期功能NOP(即,递增程序计数器两次但不改变其它程序可存取状态)。在此情况下,微控制器101可继续执行指令序列501。
在成功图像交换后,PFC目标将即刻处于新活动面板中。在两者代码图像中必须存在PFC目标(以防图像交换失败)。代码使用SOFTSWAP以确定图像交换是否成功。当仅发生软件交换时,由于典型的复位序列未发生因此不重新刷新装置配置。
可根据应用程序需求,在此BOOTSWP指令(即,在原始或新代码图像中)之前或之后改变持续的引导序列值。
图6描述根据特定实施例的特殊功能寄存器中的状态位。此状态位(标记为SOFTSWAP)可为非易失性存储器控制寄存器(标记为NVMCON)的位11。如果使用BOOTSWP指令已成功地交换存储器面板,则SOFTSWAP可为可被读作逻辑‘1’的可读位。否则SOFTSWAP可为逻辑‘0’。在特定实施例中,微控制器101可为可配置的以仅使用一个逻辑面板操作(举例来说,单引导模式)。
图7描述根据特定实施例的特殊功能寄存器中的状态位。此状态位(标记为P2ACTIV)可为NVMCON寄存器的位10。如果设定为逻辑‘0’,则P2ACTIV可指示逻辑面板1活动。如果设定为逻辑‘1’,则P2ACTIV可指示逻辑面板2活动。
图8描述根据特定实施例的特殊功能寄存器中的控制/状态位。此控制/状态位(标记为SWAPEN)可为NVMCOM寄存器的位09。在一些实施例中,SWAPEN可为控制位且可需要设定预定时间窗内的循序写入。在特定实施例中,SWAPEN位必须在微控制器101的三个周期中写入逻辑‘1’两次以避免不经意地设定此位。
在特定实施例中,SWAPEN可为双重功能控制/状态位。在一个操作模式中,SWAPEN位可为控制位,直到其被成功设定(举例来说,在第二位设定操作之后)。一旦成功设定,SWAPEN位可成为指示BOOTSWP指令是否在联锁窗内执行的状态位。如果BOOTSWP操作成功,则可清除SWAPEN位(且可双态切换P2ACTIV位)。如果BOOTSWP操作未成功,则SWAPEN位可保持设定(且可不双态切换P2ACTIV位)。在一些实施例中,应用程序必须在交换逻辑面板的任何随后尝试之前清除SWAPEN位。
在微控制器101经配置以在单引导模式中操作的情况下,可将SOFTSWAP及P2ACTIV读作逻辑‘0’。当微控制器101经配置以在双引导模式中操作时,其用作用于协调双引导软交换操作的BOOTSWP指令的联锁序列的部分。为帮助降低不经意地设定SWAPEN位的机会,根据一些实施例,必须对其写入逻辑‘1’两次。根据又一实施例,第二次写入必须发生于第一次写入完成的2个周期内以成功地设定位。可将位读作逻辑‘0’直到那时。不符合写入时序将复位位周期计数定序器,如同清除所述位那样。
根据特定实施例,可使用联锁控制寄存器(NVMKEY)以启用面板交换功能性。在这些实施例中,仅当满足联锁序列时才可启用BOOTSWP指令。解锁序列可与用于允许启用编程及/或擦除快闪存储器的解锁序列相同。解锁序列可包含快速连续设定NVMCON.WR两次。在一些实施例中,此软件联锁需要应用程序代码将0x55其次0xAA写入到NVMKEY寄存器,其中第二次写入必须发生于第一次写入完成之后的2个周期以成功地启用BOOTSWAP。成功符合写入时序可打开1指令周期窗,在此期间可执行BOOTSWP指令。未符合写入时序可复位NVMKEY定序器,迫使解锁序列重启。可始终将NVMKEY寄存器读作0。
NVMCON.SOFTSWAP位可为指示在联锁窗内执行BOOTSWP指令的状态位。如果操作成功,那么可设定NVMCON.SOFTSWAP位(且可双态切换P2ACTIV位)。如果操作未成功,那么NVMCON.SOFTSWAP位可保持其先前值(且不可双态切换P2ACTIV位)。可通过写入逻辑‘0’清除NVMCON.SOFTSWAP状态位,但不可由应用程序代码直接设定所述状态位。在任何随后双引导软交换操作尝试之前,应用程序可需要清除NVMCON.SOFTSWAP位,使得所述状态不反映先前成功的SOFTSWAP操作。
在这些实施例中,下列序列可成功解锁BOOTSWP联锁:
MOV.b #55,W0
MOV.b WREG,NVMKEY
MOV.b #AA,W0
MOV.b WREG,NVMKEY
BOOTSWP --可在此处执行引导交换指令。
根据一些实施例,微控制器101将支持具有可在成功完成联锁序列之后执行的助记符BOOTSWP的指令。当BOOTSWP成功执行时,微控制器101可:
●在PS存储器映射内切换活动面板与非活动面板,
●双态切换NVMCON.P2ACTIV位,以及
●设定指示软交换已成功发生的NVMCON.SOFTSWAP状态位。
根据一些实施例,BOOTSWP指令之后必须为指向在(新)活动面板中的代码的开始的流控制指令。此流控制指令可具有清除CPU管线的副作用。面板交换时序将使得面板将在目标地址预提取开始处在PS内交换。
根据一些实施例,软交换将不重新加载配置寄存器,因此原始活动面板的这些将在面板交换完成之后持续。在面板交换期间重新加载配置寄存器可进一步延迟执行。
参考附图中说明的及下文详细描述的示范性且因此非限制实施例更全面地解释本发明及其各种特征及优点细节。可省略已知编程技术、计算机软件、硬件、操作平台及协议的描述以免不必要地模糊本发明的细节。然而,应理解,在指示优选的实施例时,仅以说明方式而非限制方式给出详细描述及特定实例。在基本发明概念的精神及/或范围内的各种替代、修改、添加及/或重新布置对所属领域的技术人员来说将从本发明显而易见。
如本文中使用,术语“包括”、“包含”、“具有”或其任何其它变体希望涵盖非排它包含。举例来说,包括一系列元件的过程、产品、物品或设备并不一定限制于仅这些元件,而是可包含未明确列出或此类过程、产品、物品或设备固有的其它元件。此外,除非明确相反声明,否则“或”指代包含性或且不指代排它性或。举例来说,由以下任何一者满足条件A或B:A为真(存在)且B为假(或不存在),A为假(或不存在)且B为真(或存在),及A与B两者都为真(或存在)。
另外,本文中给出的任何实例或说明不应以任何方式视为对其利用的任何术语(或多个术语)的约束、限制或表达其利用的任何术语(或多个术语)的界定。相反,可将这些实例或说明视为相对于一个特定实施例而描述的且仅为说明性的。所属领域的一般技术人员将了解,这些实例或说明利用的任何术语(或多个术语)涵盖可在(或不在)本说明书中或别处的其它实施例以及其实施方案及调整,且所有此类实施例希望包含于所述术语(或多个术语)的范围内。指定此类非限制实例及说明的语言包含(但不限于):“举例来说”、“例如”、“在一个实施例中”及类似物。
Claims (32)
1.一种具有双引导能力的中央处理单元,其包括:
指令存储器,其包括经配置为单独可编程的第一及第二存储器区域,其中可将第一及第二存储器区域分别指派到从中执行指令的活动存储器及非活动存储器;
其中所述中央处理单元的指令集包括操作码,所述操作码的唯一目的是导致从活动存储器区域到非活动存储器区域的交换,其中通过在所述活动存储器中执行所述操作码后接着立即在所述活动存储器中执行程序流改变指令来执行所述交换,于是所述非活动存储器成为新活动存储器且所述活动存储器成为新非活动存储器且在所述新活动存储器中继续执行指令。
2.根据权利要求1所述的中央处理单元,其中所述程序流改变指令为分支指令或跳转指令。
3.根据权利要求1所述的中央处理单元,其进一步包括控制寄存器,所述控制寄存器包括至少一个状态位,当已成功执行所述操作码时设定所述至少一个状态位。
4.根据权利要求3所述的中央处理单元,其中当无法成功执行交换时所述操作码充当无操作指令,其中所述无操作指令推动程序计数器以跳过所述程序流改变指令。
5.根据权利要求1所述的中央处理单元,其进一步包括控制寄存器,所述控制寄存器包括必须经设定以允许从所述活动存储器到所述非活动存储器的交换的至少一个控制位。
6.根据权利要求5所述的中央处理单元,其中通过将所述控制位设定至少两次来设定所述至少一个控制位,其中所述至少一个控制位的第二次设定必须在预定时间窗内执行。
7.根据权利要求6所述的中央处理单元,其中所述时间窗为2个指令周期。
8.根据权利要求1所述的中央处理单元,其中当从所述活动存储器执行程序时所述非活动存储器经配置为可编程的。
9.根据权利要求1所述的中央处理单元,其中在初始化期间,所述中央处理单元经配置以至少部分基于从非易失性存储器读取的面板选择值将所述第一存储器区域指派到所述活动存储器。
10.根据权利要求9所述的中央处理单元,其中非易失性存储器中的所述面板选择值因所述操作码的成功执行而修改。
11.根据权利要求9所述的中央处理单元,其中在所述操作码的成功执行后可由软件指令修改非易失性存储器中的所述面板选择值。
12.根据权利要求1所述的中央处理单元,其进一步包括控制寄存器,其经配置以启用或禁用所述操作码。
13.根据权利要求12所述的中央处理单元,其中为了允许所述操作码的执行,所述控制寄存器必须以第一值写入、接着在预定时间窗内以第二值写入。
14.根据权利要求13所述的中央处理单元,其中所述时间窗是2个指令周期。
15.根据权利要求3所述的中央处理单元,其进一步包括以下步骤:启用所述操作码使其仅在所述控制寄存器中的所述至少一个状态位已被清除后才执行。
16.根据权利要求15所述的中央处理单元,其中所述控制寄存器中的所述至少一个状态位不能被指令设置。
17.一种操作具有双引导能力的中央处理单元的方法,所述方法包括:
提供指令存储器,所述指令存储器包括经配置为单独可编程的第一存储器区域及第二存储器区域;
指派所述第一存储器区域为从中执行指令的活动存储器,指派所述第二存储器区域为非活动存储器;
其中所述中央处理单元包括指令集,所述指令集包括操作码,当执行所述操作码时,所述操作码的唯一目的是导致从所述第一存储器区域到所述第二存储器区域的交换,其中所述操作码经配置为可执行的或非可执行的;
将所述操作码配置为可执行的;
在所述活动存储器中执行所述操作码接着在所述活动存储器中执行程序流改变指令,一旦执行所述指令,所述非活动存储器成为新活动存储器且所述活动存储器成为新非活动存储器,且在所述新的活动存储器中继续执行指令。
18.根据权利要求17所述的方法,其中所述程序流改变指令是分支指令或跳转指令。
19.根据权利要求17所述的方法,其进一步包括以下步骤:当所述操作码已被成功执行时,自动在控制寄存器中设置至少一个状态位。
20.根据权利要求19所述的方法,其进一步包括以下步骤:启用所述操作码使其仅在所述控制寄存器中的所述至少一个状态位已被清除后才可执行。
21.根据权利要求20所述的方法,其中所述控制寄存器中的所述至少一个状态位不能被指令设置。
22.根据权利要求20所述的方法,其中当所述操作码并没有被启用时,所述操作码充当无操作指令,其中所述无操作指令推动程序计数器以跳过所述程序流改变指令。
23.根据权利要求17所述的方法,其进一步包括以下步骤:在执行所述操作码之前,设置控制寄存器中的控制位,其中设置所述控制位启用所述操作码的执行。
24.根据权利要求23所述的方法,其进一步包括以下步骤:在执行所述操作码之前,将所述至少一个控制位设定至少两次,于是启用所述操作码的执行,其中所述至少一个控制位的第二次设定必须在预定时间窗内执行。
25.根据权利要求24所述的方法,其中所述预定时间窗为2个指令周期。
26.根据权利要求17所述的方法,其进一步包括以下步骤:当从所述活动存储器执行程序时,对所述非活动存储器编程。
27.根据权利要求17所述的方法,其中在初始化期间,所述中央处理单元至少部分基于从非易失性存储器读取的面板选择值而将所述第一存储器区域指派到所述活动存储器。
28.根据权利要求27所述的方法,其中非易失性存储器中的所述面板选择值因所述操作码的成功执行而修改。
29.根据权利要求27所述的方法,其中在所述操作码的成功执行后由软件指令修改非易失性存储器中的所述面板选择值。
30.根据权利要求17所述的方法,其进一步包括以下步骤:将第一值写到控制寄存器中并接着在预定时间窗内将第二值写到所述控制寄存器中以启用所述操作码。
31.根据权利要求30所述的方法,其中所述时间窗为2个指令周期。
32.一种具有双引导能力的中央处理单元,其包括:
指令存储器,其包括经配置为单独可编程的第一及第二存储器区域,其中第一及第二存储器区域能够分别被指派到从中执行指令的活动存储器及非活动存储器;
其中所述中央处理单元的指令集包括具有操作码的指令,所述操作码的唯一目的是执行从活动存储器区域到非活动存储器区域的交换,其中所述操作码经配置为可执行的或非可执行的,其中通过将所述指令配置为可执行的并接着在所述活动存储器中执行所述操作码接着立即在所述活动存储器中执行程序流改变指令来执行所述交换,于是所述非活动存储器成为新活动存储器且所述活动存储器成为新非活动存储器且在所述新活动存储器中继续执行指令。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361780990P | 2013-03-14 | 2013-03-14 | |
US61/780,990 | 2013-03-14 | ||
US14/204,208 US9858083B2 (en) | 2013-03-14 | 2014-03-11 | Dual boot panel SWAP mechanism |
US14/204,208 | 2014-03-11 | ||
PCT/US2014/025329 WO2014159849A1 (en) | 2013-03-14 | 2014-03-13 | Dual boot system with memory area swapping mechanism |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105190551A CN105190551A (zh) | 2015-12-23 |
CN105190551B true CN105190551B (zh) | 2020-06-26 |
Family
ID=51534018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480014047.1A Active CN105190551B (zh) | 2013-03-14 | 2014-03-13 | 具有存储器区域交换机制的双引导系统 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9858083B2 (zh) |
EP (1) | EP2972823B1 (zh) |
KR (1) | KR20150129757A (zh) |
CN (1) | CN105190551B (zh) |
TW (1) | TWI617984B (zh) |
WO (1) | WO2014159849A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9665364B2 (en) * | 2013-06-18 | 2017-05-30 | Thomson Licensing | Dual-bank telecommunication apparatus and method of upgrading firmware in dual-bank telecommunication apparatus |
US10140109B2 (en) * | 2014-02-25 | 2018-11-27 | Ford Global Technologies, Llc | Silent in-vehicle software updates |
US9928094B2 (en) | 2014-11-25 | 2018-03-27 | Microsoft Technology Licensing, Llc | Hardware accelerated virtual context switching |
CN106354524B (zh) * | 2015-07-17 | 2021-01-01 | 恩智浦美国有限公司 | 实时更新固件的系统和方法 |
US11513950B2 (en) * | 2020-09-08 | 2022-11-29 | Western Digital Technologies, Inc. | Wear leveling in non-volatile memory |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1262851A (zh) * | 1997-05-20 | 2000-08-09 | 艾利森电话股份有限公司 | 蜂窝通信系统中的后台软件加载 |
CN101135979A (zh) * | 2006-08-30 | 2008-03-05 | 国际商业机器公司 | 用于以非破坏性方式应用破坏性固件更新的系统和方法 |
CN101169728A (zh) * | 2007-11-22 | 2008-04-30 | 中兴通讯股份有限公司 | 双引导启动装置及方法 |
EP2508990A1 (en) * | 2011-04-04 | 2012-10-10 | Fujitsu Limited | Hypervisor replacing method and information processing device |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7257814B1 (en) * | 1998-12-16 | 2007-08-14 | Mips Technologies, Inc. | Method and apparatus for implementing atomicity of memory operations in dynamic multi-streaming processors |
EP1193586A2 (en) * | 2000-09-27 | 2002-04-03 | John H. Reed, Jr. | Security system for data processing applications |
US20020103847A1 (en) * | 2001-02-01 | 2002-08-01 | Hanan Potash | Efficient mechanism for inter-thread communication within a multi-threaded computer system |
US20020103990A1 (en) * | 2001-02-01 | 2002-08-01 | Hanan Potash | Programmed load precession machine |
US7856632B2 (en) * | 2004-01-29 | 2010-12-21 | Klingman Edwin E | iMEM ASCII architecture for executing system operators and processing data operators |
JP4888556B2 (ja) * | 2007-06-20 | 2012-02-29 | 富士通株式会社 | ユニット間設定同期装置 |
US20120137108A1 (en) * | 2008-02-19 | 2012-05-31 | Koch Iii Kenneth Elmon | Systems and methods integrating boolean processing and memory |
TWI411959B (zh) | 2008-03-21 | 2013-10-11 | Asustek Comp Inc | 具雙開機程式碼區之電腦系統及其啟動方法 |
WO2010099529A1 (en) * | 2009-02-27 | 2010-09-02 | Keicy Chung | Central processing unit capable of multi-boot using disjoint memory spaces |
US8554745B2 (en) * | 2009-04-27 | 2013-10-08 | Netapp, Inc. | Nearstore compression of data in a storage system |
US20120297177A1 (en) * | 2010-11-15 | 2012-11-22 | Ghosh Anup K | Hardware Assisted Operating System Switch |
CN102567042B (zh) * | 2010-12-14 | 2015-04-15 | 国际商业机器公司 | 利用引导块重定位来管理多个软件镜像的方法和系统 |
KR101754203B1 (ko) * | 2011-01-19 | 2017-07-07 | 삼성전자주식회사 | 파워 게이팅 기반의 재구성가능 프로세서, 이를 위한 컴파일 장치 및 방법 |
CN103339604B (zh) * | 2011-01-31 | 2016-10-26 | 株式会社索思未来 | 程序生成装置、程序生成方法、处理器装置以及多处理器系统 |
KR101844222B1 (ko) * | 2011-05-27 | 2018-04-02 | 엘지전자 주식회사 | 이동 단말기 및 이것의 모드 제어 방법 |
KR101801577B1 (ko) * | 2011-06-28 | 2017-11-27 | 엘지전자 주식회사 | 이동 단말기 및 이것의 디스플레이 제어 방법 |
US8849647B2 (en) * | 2011-10-19 | 2014-09-30 | Lsi Corporation | Dual-firmware for next generation emulation |
WO2014159123A1 (en) * | 2013-03-12 | 2014-10-02 | Microchip Technology Incorporated | Programmable cpu register hardware context swap mechanism |
-
2014
- 2014-03-11 US US14/204,208 patent/US9858083B2/en active Active
- 2014-03-13 EP EP14719941.8A patent/EP2972823B1/en active Active
- 2014-03-13 KR KR1020157027088A patent/KR20150129757A/ko active IP Right Grant
- 2014-03-13 WO PCT/US2014/025329 patent/WO2014159849A1/en active Application Filing
- 2014-03-13 CN CN201480014047.1A patent/CN105190551B/zh active Active
- 2014-03-14 TW TW103109757A patent/TWI617984B/zh active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1262851A (zh) * | 1997-05-20 | 2000-08-09 | 艾利森电话股份有限公司 | 蜂窝通信系统中的后台软件加载 |
CN101135979A (zh) * | 2006-08-30 | 2008-03-05 | 国际商业机器公司 | 用于以非破坏性方式应用破坏性固件更新的系统和方法 |
CN101169728A (zh) * | 2007-11-22 | 2008-04-30 | 中兴通讯股份有限公司 | 双引导启动装置及方法 |
EP2508990A1 (en) * | 2011-04-04 | 2012-10-10 | Fujitsu Limited | Hypervisor replacing method and information processing device |
Also Published As
Publication number | Publication date |
---|---|
TWI617984B (zh) | 2018-03-11 |
US20140281465A1 (en) | 2014-09-18 |
EP2972823A1 (en) | 2016-01-20 |
EP2972823B1 (en) | 2021-04-28 |
CN105190551A (zh) | 2015-12-23 |
TW201447760A (zh) | 2014-12-16 |
WO2014159849A1 (en) | 2014-10-02 |
KR20150129757A (ko) | 2015-11-20 |
US9858083B2 (en) | 2018-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101738212B1 (ko) | 명령어 에뮬레이션 프로세서, 방법, 및 시스템 | |
US9733950B2 (en) | Boot sequencing for multi boot devices | |
US10671391B2 (en) | Modeless instruction execution with 64/32-bit addressing | |
KR101793318B1 (ko) | 명령어 에뮬레이션 프로세서, 방법 및 시스템 | |
CN105190551B (zh) | 具有存储器区域交换机制的双引导系统 | |
KR101839479B1 (ko) | 더 넓은 레지스터에의 모드 의존형 부분 폭 로드 프로세서들, 방법들, 및 시스템들 | |
EP3289442B1 (en) | Central processing unit with enhanced instruction set | |
KR100272937B1 (ko) | 마이크로프로세서및멀티프로세서시스템 | |
US20120030392A1 (en) | System and Method for Automatic Hardware Interrupt Handling | |
US20120042136A1 (en) | Alignment control | |
JP2010500682A (ja) | フラッシュメモリアクセス回路 | |
TWI467475B (zh) | 無關於特權位準的區段暫存器讀與寫的系統、設備及方法 | |
TWI574152B (zh) | 具有上下文切換之微控制器 | |
JP2006221606A (ja) | データプロセッサ | |
CN114047952A (zh) | 用于单片机的处理器、方法、单片机和存储介质 | |
US20120017035A1 (en) | Runtime reprogramming of a processor code space memory area | |
US20210132985A1 (en) | Shadow latches in a shadow-latch configured register file for thread storage | |
TW200417926A (en) | Selective interrupt suppression |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |