CN107548492B - 具有增强指令集的中央处理单元 - Google Patents

具有增强指令集的中央处理单元 Download PDF

Info

Publication number
CN107548492B
CN107548492B CN201680024293.4A CN201680024293A CN107548492B CN 107548492 B CN107548492 B CN 107548492B CN 201680024293 A CN201680024293 A CN 201680024293A CN 107548492 B CN107548492 B CN 107548492B
Authority
CN
China
Prior art keywords
segment
integrated circuit
volatile
processing core
instruction
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
Application number
CN201680024293.4A
Other languages
English (en)
Other versions
CN107548492A (zh
Inventor
迈克尔·卡瑟伍德
戴维·米基
布赖恩·克里斯
克洛姆·威尔基
贾森·萨克斯
安德鲁斯·瑞特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microchip Technology Inc
Original Assignee
Microchip Technology Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Microchip Technology Inc filed Critical Microchip Technology Inc
Publication of CN107548492A publication Critical patent/CN107548492A/zh
Application granted granted Critical
Publication of CN107548492B publication Critical patent/CN107548492B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Executing Machine-Instructions (AREA)
  • Storage Device Security (AREA)
  • Advance Control (AREA)

Abstract

本发明提供一种集成电路,所述集成电路具有:主处理核心,其具有与非易失性存储器耦合的中央处理单元;及从处理核心,其独立于所述主处理核心而操作且具有与易失性程序存储器耦合的中央处理单元,其中所述主中央处理单元经配置以将程序指令传送到所述从处理核心的所述非易失性存储器中,且其中所述程序指令的传送是通过在所述主处理核心的所述中央处理单元内执行专用指令而执行。

Description

具有增强指令集的中央处理单元
相关专利申请案
本申请案主张共同拥有的2015年4月30日提交的第62/154,927号美国临时专利申请案的优先权,所述申请案出于所有目的而以引用方式并入本文中。
技术领域
本发明涉及中央处理单元(CPU),特定来说,涉及具有数字信号处理单元(DSP)的微控制器。本发明进一步涉及多处理器集成电路装置,特定来说,涉及具有多个处理器的微控制器。
背景技术
嵌入式系统通常包括中央处理单元(CPU)、存储器及多个外围装置以形成单芯片系统或单芯片微控制器。更先进系统包括一个以上CPU。此外,CPU可经增强以具有数字信号处理能力,例如由本申请案的受让人制造的dsPIC核心。图1展示此处理核心的框图。如可见,此核心具有典型数字信号处理能力,例如X数据RAM及单独Y数据RAM及DSP引擎,所述DSP引擎与所述RAM及寄存器文件耦合,使得所述RAM可被并行存取。展示此处理核心的其它典型元件。另外,此常规DSP微控制器在图1的底部处展示通过系统总线与所述核心耦合的某些外围装置。图2展示所述核心的寄存器,例如所述寄存器文件的工作寄存器及所述DSP引擎的累加器以及其它典型DSP寄存器。图3展示图1的框图的DPS引擎的更详细框图。如图1到3中所展示的处理核心是包括数字信号处理能力的单处理核心。所述处理核心可在多核心装置中用作核心中的一者。
发明内容
需要改进此处理核心的指令集,特定来说,在所述处理核心用于多核心装置中时,例如,举例来说在其核心中的至少一者中包括信号处理能力的双核心微控制器。
多处理器核心微控制器可被设计成具有完全分离的核心且每一核心可按不同系统时钟操作。因此,为提供在两个或两个以上核心之间通信的能力,特定通信接口是必需的。特定来说,需要一种用来在多处理器装置上的处理器存储器之间移动代码受保护数据的构件。解决方案必须完全可配置,且在硅使用方面是有效的。
在多处理器微控制器的主从配置中,需要对双核心从处理器程序加载/验证方法的支持,同时在将程序加载到从装置中之后维持代码保护。
根据实施例,一种集成电路可包括:主处理核心,其具有与非易失性存储器耦合的中央处理单元;及从处理核心,其独立于所述主处理核心而操作且具有与易失性程序存储器耦合的中央处理单元;其中所述主中央处理单元经配置以将程序指令传送到所述从处理核心的所述非易失性存储器中;且其中所述程序指令的传送是通过在所述主处理核心的所述中央处理单元内执行专用指令而执行。
根据进一步实施例,所述专用指令具有定义源地址的第一操作数及定义目的地地址的第二操作数,其中所述目的地地址是在所述指令的执行之后自动递增。根据进一步实施例,所述专用指令致使信息字传送到缓冲器中,且其中所述信息是从所述缓冲器写入所述易失性程序存储器中。根据进一步实施例,所述指令致使所述非易失性存储器输出所述信息,由此所述信息被所述缓冲器捕捉。根据进一步实施例,所述信息是24位字。根据进一步实施例,所述集成电路包括多个从处理核心且所述专用指令具有定义目标从处理单元的第三操作数。根据进一步实施例,存储于所述第一操作数中的所述源地址可任选地在所述指令的执行之后自动递增。根据进一步实施例,所述源地址是与所述主处理核心相关联的外围装置的特殊功能寄存器。根据进一步实施例,所述外围装置是串行通信外围装置。根据进一步实施例,所述外围装置是并行输入端口。根据进一步实施例,所述主处理核心进一步可操作以执行验证存储于所述非易失性程序存储器中的信息的进一步指令。根据进一步实施例,所述进一步指令致使第一信息传送到所述缓冲器中,且其中比较所述缓冲器的内容与存储于所述易失性存储器中的第二信息。根据进一步实施例,所述进一步指令包括应用于所述非易失性存储器以输出所述第一信息的第一地址及应用于所述易失性存储器以输出所述第二信息的第二地址。根据进一步实施例,所述进一步指令进一步验证与所述第一信息及所述第二信息相关联的错误校正码(ECC)。根据进一步实施例,可从所述非易失性存储器读取与所述非易失性存储器相关联的ECC且单独产生与所述源相关联的ECC。根据进一步实施例,所述第一处理核心的所述非易失性存储器包括由保护方案定义的代码保护,且其中所述从处理核心的所述易失性程序存储器具有取决于所述保护方案的设置的代码保护。根据进一步实施例,所述保护方案定义所述非易失性存储器的多个段(segment),且其中在所述保护方案中,每一段具有保护设置。根据进一步实施例,所述非易失性存储器的每一保护设置具有读取操作的设置及编程或擦除操作的设置。根据进一步实施例,所述保护方案提供预定义数目个安全性等级,其中每一安全性等级定义每一段的保护设置。根据进一步实施例,所述易失性程序存储器的所述代码保护与所述非易失性存储器的所述段中的一者的所述代码保护相同。根据进一步实施例,寄存器存储所述非易失性存储器的哪段经选择以提供所述易失性存储器的所述代码保护设置。根据进一步实施例,所述非易失性存储器的读取操作的设置适用于所述易失性存储器的读取操作及写入操作。根据进一步实施例,在段被保护时,取决于保护设置,从一段执行的指令无法对不同段进行操作。根据进一步实施例,在段被保护时,取决于保护设置,从一段执行的读取指令仅可对不同段的预定义区域进行操作。根据进一步实施例,所述预定义区域存储中断向量。根据进一步实施例,所述非易失性存储器包括启动段及通用段。根据进一步实施例,所述非易失性存储器进一步包括测试段。
根据另一实施例,一种提供用于多核心集成电路处理装置(其包括:第一处理核心,其具有与非易失性存储器耦合的第一中央处理单元;及第二处理核心,其独立于所述第一处理核心而操作且具有与易失性程序存储器耦合的第二中央处理单元)中的处理核心的固件的方法可包括:在所述第一中央处理单元内执行专用指令,所述专用指令致使数据被写入所述从处理核心的所述非易失性存储器中。
根据所述方法的进一步实施例,所述专用指令具有定义源地址的第一操作数及定义目的地地址的第二操作数,其中所述目的地地址是在所述指令的执行之后自动递增。根据所述方法的进一步实施例,在所述专用指令的执行时,将信息字从所述非易失性存储器传送到缓冲器中,且将所述信息从所述缓冲器写入所述易失性程序存储器中。根据所述方法的进一步实施例,所述方法可进一步包括在循环中重复所述专用指令。根据所述方法的进一步实施例,所述集成电路包括多个从处理核心且所述专用指令具有定义目标从处理单元的第三操作数。根据所述方法的进一步实施例,存储于所述第一操作数中的所述源地址可任选地在所述指令的执行之后自动递增。根据所述方法的进一步实施例,所述方法可进一步包括由所述主处理核心执行验证存储于所述非易失性程序存储器中的信息的进一步指令。根据所述方法的进一步实施例,所述进一步指令致使第一信息传送到所述缓冲器中,且其中比较所述缓冲器的内容与存储于所述易失性存储器中的第二信息。根据所述方法的进一步实施例,所述进一步指令包括应用于所述非易失性存储器以输出所述第一信息的第一地址及应用于所述易失性存储器以输出所述第二信息的第二地址。根据所述方法的进一步实施例,所述进一步指令进一步验证与所述第一信息及所述第二信息相关联的错误校正码(ECC)。根据所述方法的进一步实施例,可从所述非易失性存储器读取与所述非易失性存储器相关联的ECC且单独产生与所述源相关联的ECC。根据所述方法的进一步实施例,所述第一处理核心的所述非易失性存储器包括由保护方案定义的代码保护,且其中所述从处理单元的所述易失性程序存储器具有取决于所述保护方案的设置的代码保护。根据所述方法的进一步实施例,所述保护方案定义所述非易失性存储器的多个段,且其中在所述保护方案中,每一段具有保护设置。根据所述方法的进一步实施例,所述非易失性存储器的每一保护设置具有读取操作的设置及编程或擦除操作的设置。根据所述方法的进一步实施例,所述保护方案提供预定义数目个安全性等级,其中每一安全性等级定义每一段的保护设置。根据所述方法的进一步实施例,所述易失性程序存储器的所述代码保护与所述非易失性存储器的所述段中的一者的所述代码保护相同。根据所述方法的进一步实施例,寄存器存储所述非易失性存储器的哪段经选择以提供所述易失性存储器的所述代码保护设置。根据所述方法的进一步实施例,所述非易失性存储器的读取操作的设置适用于所述易失性存储器的读取操作及写入操作。根据所述方法的进一步实施例,在段被保护时,取决于保护设置,从一段执行的指令无法对不同段进行操作。根据所述方法的进一步实施例,在段被保护时,取决于保护设置,从一段执行的读取指令仅可对不同段的预定义区域进行操作。根据所述方法的进一步实施例,所述预定义区域存储中断向量。根据所述方法的进一步实施例,所述非易失性存储器包括启动段及通用段。根据所述方法的进一步实施例,所述非易失性存储器进一步包括测试段。
附图说明
图1展示其中单CPU具有数字处理能力的微控制器的框图;
图2展示根据图1的CPU的各种寄存器;
图3展示根据图1的CPU的DSP引擎的特定部分;
图4展示根据实施例的双核心微控制器;
图5展示根据各种实施例的双核心或多核心微控制器;
图6展示可如何根据一些实施例存取程序RAM的细节;
图7展示快闪存储器的分段;及
图8到11展示具有各个安全性等级的表。
具体实施方式
如图4及5中所展示,双核心或多核心处理装置400可被设计成具有:主微控制器410,其具有主中央处理单元(CPU)412;及一或多个从单元420,其各自具有从中央处理单元422,其中每一从中央处理单元422的核心设计可与所述主CPU 412的核心设计大致相同或类似。然而,根据其它实施例,从CPU 422可不同于主CPU 412。所述主微控制器具有其自身的一组外围装置,如图4中所展示。从单元420可具有或可不具有其自身的一组外围装置且因此,自行形成微控制器。因此,每一主装置及从装置形成或多或少完全独立的处理装置且可与专用总线或通信接口430通信。图4及5展示具有主微控制器410及单个从微控制器420的此设计。提供允许两个核心410与420之间的通信的通信接口430。每一处理器412、422可被设计成如所展示的哈佛(Harvard)架构。然而,根据各种实施例的原理可容易转化成冯·诺伊曼架构。所述主单元包括例如用作程序存储器的快闪存储器416及用作数据存储器的随机存取存储器414,每一存储器与主核心412耦合。
如图4及5中所展示,从单元420可被设计成不具有快闪存储器。而是,提供专用程序随机存取存储器426。归因于此存储器为易失性的事实,所述存储器将根据各种实施例通过主装置410而加载。此设计选择具有避免由快闪存储器技术提供的瓶颈的优点。快闪存储器通常比RAM 424慢。因此,将不存在读取延迟且从装置可按较高执行速度操作,其可非常有利于某些高速应用,举例来说,例如SMPS应用。如上述,一个以上从单元420可根据各种实施例实施。如果两个核心是相同的,那么主核心412可被设计成包含无法在从单元422中实施或在所述从单元中不起作用的额外指令。这些额外指令允许数据从快闪存储器416或从外部源传送到从装置420的PRAM 426中。例如,根据实施例,多个核心可实施在单芯片装置内且每一核心可具有经指派的配置寄存器,其中此寄存器的位中的一者可定义相应单元是主装置还是从装置。可存在允许仅将所述核心中的一者设置为主装置的逻辑。一旦已设置此位,那么可允许执行额外指令。在其它单元(从装置)中,可不执行这些指令,例如,所述指令可被解译为非法操作码。
用来供主单元410存取PRAM 426的控制逻辑可位于如图4中所展示具有缓冲器/比较器单元418的主单元中。替代地,类似单元可布置在如图5中所展示具有PRAM包装器(wrapper)单元428的从单元420内。任一单元被设计成将PRAM的存取唯一地授予主单元410或从单元420。其它实施例可将所述逻辑的一些部分放置于所述主核心内且将其它部分放置于所述从核心中或将所述逻辑布置于两个单元外。类似地,通信接口430可在任一单元内或完全在两个单元外。可由如图5中用虚线所指示的通信接口430提供对PRAM存取单元418或428的额外控制。图5还用虚线展示额外从单元440及450。所有单元可通过总线及每一从单元中的相关联包装器单元428而连接。因此,实施例不限于双核心实施方案。所属领域的技术人员将认知,其它实施方案是可能的。
图6展示从侧处的示范性接口的框图。在此示范性实施例中,主从接口形成通信接口430。两个多路复用器428a、428b分别授予对程序RAM 426的数据及地址总线的存取。展示连接到主单元410、从核心422及PRAM 426的额外存取逻辑428c。在此实施例中,通信接口430控制所述多路复用器以赋予对主单元410的存取,同时从处理器保持于复位状态。一旦PRAM 426已加载从固件,多路复用器428a、428b将随即经控制以将存取回授到从单元420且CPU 422将从复位中释放。存取控制及数据验证逻辑428c可分配可来自主单元410或从单元420的读取及写入及启用信号。如图6中所展示的接口可在主单元410与PRAM 426之间提供唯写路径。在此实施方案中,存取控制及数据验证逻辑428c可经配置以执行经写入数据的验证。例如,根据一个实施例,所述存取控制及数据验证逻辑在与主单元410耦合时可以两种不同模式进行操作。在第一模式中,所述存取控制及数据验证逻辑提供用于将从固件写入PRAM 426中的逻辑信号,其中数据字节是以任何合适方式例如连续地写入PRAM 426中。在第二模式中,单元428c可提供验证功能。取代写入经传输数据,单元428c比较由主单元410提供的数据与PRAM 426的内容以验证所述数据已被正确地编程。关于所述PRAM的主/从接口的其它实施例是可能的。
因此,根据各种实施例,可提供用于多核心装置(特定来说双核心微控制器)的从处理器加载/验证方法。这提供相对于常规多核心装置的改进效率及性能,尤其针对在核心内使用DSP引擎的紧凑控制循环应用(例如SMPS应用)。然而,处理核心无须设计成包含DSP引擎。根据各种实施例的原理适用于仅包含常规CPU的处理核心。此外,相关联C编译程序的效率及性能将通过此改进指令集而改进。
根据各种实施例,新的双(多)核心架构包含用来加载及验证从核心程序RAM(PRAM)的专用CPU指令。随着特定来说对基于DSP的应用的性能需求增大,改进CPU处理量(特定来说DSP引擎处理量)的需要变得明显:例如,存在对增大的速度的需要。根据一个实施例,双核心装置针对将快闪存储器用作其程序存储器的主单元410以100MHz(例如,以0.75MIP/MHz)为目标且针对将PRAM用作其程序存储器的从单元420以120MHz(例如,以0.9MIP/MHz)为目标。如上文所提及,对从单元420中的程序存储器426的PRAM选择允许此单元更有效地且以更高速度运行。此外,根据一些实施例,还可需要减小DSP的硬件背景切换的延时。最后,根据其它实施例,可能需要ISA改进来改进DSP算法效率。根据一些实施例,编译程序效率的增加可运用位字段指令及具有更灵活寄存器利用率的更快除法器而实现。
这些改进中的一些可通过在现有设计变化最小的情况下新增新指令及能力而实现。其它改进可通过使用相同的迭代非复原算法使除法运算加速而实现。以下改进可独立实施。因此,各种实施例可使这些类改进中的全部或子集。
概括来说,CPU改进可包括:提供以下DSP改进中的一些或全部的双核心支持指令:加载及验证从核心程序RAM(PRAM);经扩展以包含DSP累加器、状态及DSP引擎配置的硬件背景切换;数据极限(界限检查)指令;累加器32位数据加载/存储指令;及DSP标准化指令。可实现的编译程序效率增加是:位字段指令及除法指令改进。
根据各种实施例,具有DSP功能的双核心微控制器可包括其中新增PRAM加载指令(LDSLV)及验证指令(VFSLV)以促进从程序初始化的从核心。当与使用常规程序空间可见性(PSV)寻址或TBLWTx指令比较时,这些指令被设计为作为移动来自PRAM的存储器映射图像的数据的更快替代物。所述指令仅在CPU被例示为如上文所提及的主装置(CPU_IS_MASTER=1)时启用。在被停用时,所述指令将被视为非法操作码。
使用独特指令来加载/验证PRAM的另一优点是其通过无须将PRAM重新映射到主地址空间中且保持现有PSV CPU指令流(且仅使从装置窥探经过的地址及数据)而简化设计及验证。根据一个实施例,现有MOV指令可用控制标志增强以启用从PRAM捕捉功能。然而,更有利的是,产生独特指令(类似于MOV操作码但是还断言到从装置的信号以告知所述从装置将PRAM切换为主时钟域中并加载PRAM的指令),这是因为其允许就如何初始化PRAM为用户增加更佳清晰度(及一点安全性,因为这些op不可能会被意外执行)。
根据一些实施例的LDSLV指令不同于其它数据移动指令,因为它可在2个循环中将整个指令字(I字)从PS(快闪存储器)移动到PS(保存PRAM)。每一读取将从快闪存储器提取24位字且接着实现所述字到目标从PRAM的写入。常规dsPIC/PIC24CPU架构不具有用来从快闪存储器移动大于16位的数据值的构件,因此数据不移动经过主CPU而是被从装置捕捉(在可用于快闪存储器数据总线上时)。因此,这些新指令的独特之处在于它们能够移动宽于执行它们的处理器的自然数据宽度的数据(作为单个实体)。
从装置将使用经捕捉数据以将所述数据写入指定的PRAM地址(LDSLV),或比较所述数据与指定的PRAM地址(VFSLV)的内容。LDSLVNFSLV指令以相同方式操作,但VFSLV断言信号cpu_slave_pram_verify_en以指示将对照PRAM内容比较从主快闪存储器读取的数据(而非加载到PRAM中)除外。
这些指令可允许将数据从预定义源(包含主装置410的快闪存储器416)传送到程序RAM(PRAM)426中。为此目的,主装置410可提供专用指令以传送并验证经传送数据。例如:
-加载从指令LDSLV,其将数据字从主快闪存储器图像416移动到从PRAM包装器或缓冲器418/428中,其中所述数据字连同目标地址一起被捕捉。此指令将定义:间接源地址,其例如具有或不具有后递增功能;间接目的地地址,其具有后递增功能;及文字,其将定义多个从装置的哪个是目的地。然而,在双核心(单从装置)实施方案中,还可省略文字。在源上具有后递增功能的选项允许LDSLV/VFSLV在执行之后自动递增到下一源地址,以为后续LDSLV/VFSLV迭代作准备。这在从REPEAT循环内执行时尤其有用。在不使用后递增选项时,相同指令可用来将相同数据块写入于目的地PRAM 426中(还称为块填充(blockfill))。替代地,源地址可指向主外围装置的n位(例如,24位)特殊功能寄存器,例如快闪控制器编程数据寄存器。根据其它实施例,源还可能是并行输入端口、串行接收缓冲器等。一些实施例可能仅能够使用映射到程序地址空间中的n位寄存器(例如,24位寄存器)。因此,通过将外部数据引导到所述24位特殊功能寄存器,可将所述数据间接写入从装置420的PRAM 426中。然而,所述后递增功能可能是用来将程序数据从主快闪存储器416中传送出来到从PRAM426中的主要功能。在一个实施例中,主快闪存储器416及从PRAM 426可被组织成相同且每一数据字读取可通过适当逻辑428直接传送到PRAM 426中。然而,在一些实施例中,PRAM426可以不同于快闪存储器416的方式进行组织。例如,快闪存储器416可以24位字进行组织,而PRAM 426可以48位字进行组织。在此实施方案中,可提供缓冲器418/428,其存储来自快闪存储器416的第一读取且将所述经存储数据连同后续读取一起写入PRAM 426中。根据一些实施例,在此,限制可能不是源快闪存储器数据的宽度,而是LDSLV/VFSLV操作仅可对单个n位值(例如,24位值)起作用的事实。因此,即使源快闪存储器是48位宽,在此实施例中,仍仅可移动24位值。其它实施例可不限于此值。根据各种存储器的特定设计选择,其它传送机构可能适用。此外,错误校正编码(ECC)可在快闪存储器416及PRAM 426中实施。根据实施例,关于错误校正,即使快闪存储器及PRAM两者具有与ECC相同的字宽度,仍不复制ECC奇偶校验数据。而是,在加载所述ECC奇偶校验数据时,其总是在PRAM包装器内重新产生。根据一些实施例,此可归因于重新使用现有PSV模型的限制,所述现有PSV模型仅可利用核心中的现有24位数据路径。再者,其它实施例可不面临此限制。
-验证从装置指令VFSLV,其从主快闪存储器图像读取(例如)24位数据字并比较数据与PRAM 426的内容。因此,比较器可经提供以执行存储于所述快闪存储器中及所述PRAM中的数据的实际比较。虽然根据一些实施例,所述快闪存储器可针对此额外信息是不可读的ECC功能进行设计,但来自RAM的ECC数据可为可读的。比较机构(例如,缓冲器及相关联比较器)可装配有用来从经读取快闪存储器数据产生ECC数据的逻辑。因此,根据一些实施例,此指令可对主数据重新计算ECC奇偶校验并与经存储PRAM ECC作比较用于完整验证,且在不良比较的情况下还可标记(‘固着’)验证错误(在MSI宏中)。
-LDSLV/VFSLV指令可经设计以在REPEAT循环内执行;在一些实施例中,所述指令可使用现有数据管线以使传送从(至多)3循环(存取时间)快闪存储器加速到1字/循环。第一执行可需要一个以上循环(例如5个循环),以便填装所述数据管线且处置数据对准。然而,任何后续传送可在单个循环中完成。最后一个指令或包装可需要例如3个循环以展开所述数据管线。取决于待传送到PRAM中的程序的大小,重复循环内的单循环传送使传送显著地加速。其它实施例通常可在单循环内执行每一指令。
-在根据一些实施例以从装置双面板模式操作时:LDSLV/VFSLV指令仅可在从装置停用时可存取作用中PRAM;且LDSLV/VFSLV指令可总是可存取非作用中PRAM。双外观模式适用于将PRAM分成两个单独块的一些装置。在此模式中,PRAM控制使得从装置可在“非作用中”面板被主装置(重新)加载的同时,继续从“作用中”面板执行(可假设具有新PRAM图像,其已在装置更新期间重新编程到快闪存储器中)。一旦完成,主装置随即发信号给从装置:其可切换面板(实时使用专用指令,例如BOOTSWP指令)。这是非常专业化的“实时更新”(Live Update)方案,其可在一些实施例中实施且被设计成允许从装置在软件更新经由快闪存储器重新传递到所述装置中的同时保持执行(例如,SMPS内控制循环)。以100KHz或更大频率运行此类循环的应用不希望与全装置复位相关联的停机时间(毫秒),因此希望能够加载新PRAM代码,随后在无需复位的情况下瞬时调换到所述PRAM代码。针对此类实施例的固件可需要智能交递,这是因为实际上BOOTSWP所做的仅是切换PRAM面板。在所述装置正常地(在某个未来时间)复位时,所述新PRAM代码将正常地加载到“作用中”面板中。
代码实例:
实例1:LDSLV:从快闪存储器进行PRAM加载
Figure GDA0001446402800000091
实例1中所展示的代码片段(code snippet)示范可如何在应用初始化期间使用LDSLV指令以加载从装置#0的PRAM。
实例2:VFSLV:从快闪存储器进行PRAM验证
Figure GDA0001446402800000101
实例2中所展示的代码段示范可如何在应用初始化期间使用VFSLV指令以验证从装置#0的PRAM内容。
实例3:LDSLV:从快闪存储器进行PRAM块填充
Figure GDA0001446402800000102
实例3中所展示的代码段示范可如何使用LDSLV指令以对从装置#0的PRAM进行块填充(即,用恒定值加载)。在此情况下,所述常数是源自将寄存器间接地址用于LDSLV(无后递增)的快闪存储器。
实例4:LDSLV:从NVMDATAL进行PRAM加载
Figure GDA0001446402800000103
Figure GDA0001446402800000111
替代地,块填充操作码值可为源自NVM控制器24位NVMDATAL寄存器的变量。所述NVMDATAL寄存器位于PS内且在所述NVM控制器未经启用以用于快闪存储器编程/擦除(即,NVMCON.WREN=0)时变为24位r/w寄存器。每当快闪存储器编程/擦除被启用(即,NVMCON.WREN=1)时,所述寄存器均是唯写的。任何指令操作码可加载到NVMDATAL中且随后加载到PRAM中。VFSLV指令以依相同方式用来确认LDSLV操作的成功。此方法还可用来用源自装置外部的数据加载PRAM的全部或部分,从而移除如实例4中所展示首先将所述数据编程到主快闪存储器中的需要。
根据一些实施例,额外指令可在具有DSP引擎的CPU中实施。此类额外指令未必需要上文所提及的加载/验证指令的实施。此外,所述指令无需多核心设计,但还可在包括CPU及集成的DSP引擎的单核心装置中实施。
因此,根据一些实施例,第一类型的指令可是16位数据界限检查及限制功能可新增强制数据限制(FLIM/FLIM.v)指令以使16位数据界限检查及限制操作加速。此指令比较目标带正负号值与保存于相应W寄存器中的上限及下限。如果所述目标值大于上限或小于下限,那么用所述目标带正负号值加载超限寄存器。因此,可用用户可选择上限及下限定义饱和函数。此指令可在两个版本中实施:
FLIM:对CPU的工作寄存器中的任一者执行上文所提及的功能且设置状态位以指示结果
FLIM.v:设置状态位以指示结果;将超过极限的带正负号值保存到可用于抗饱和(anti-windup)算法的Wn中。因此,此指令执行与FLIM相同的功能,但还将过冲(或下冲)值存储于指明的寄存器中,如以下实例5的代码片段中所展示。
实例5:
Figure GDA0001446402800000121
第二额外指令是经新增以使基于DSP累加器的界限检查及限制操作加速的累加器最大及最小指令(MAXAB/MINAB):这些指令比较目标累加器中的带正负号值与保存于另一累加器中的上限(MAXAB)或下限(MINAB)。如果极限累加器值大于上限(MAXAB)或小于下限(MINAB),那么将所述极限累加器复制到所述目标累加器中。再者,这些指令可在两个实施方案中实施:
MAXAB/MINAB:执行如上所述的功能且设置状态位以指示结果
MAXAB.v/MINAB.v:执行与上文相同的功能且设置状态位以指示结果。此外,这些指令将超过极限的带正负号值保存到Wn或存储器(可用于抗饱和算法)中,其类似于FLIM.v指令但用40位累加器值进行操作。
实例6:
Figure GDA0001446402800000122
在执行两种类型的指令时,所述指令可被设计成随后如上述片段中所展示那样执行。这些指令自动设置指示已达到最大或最小极限的相应标志。根据一个实施例,所述最小极限指令可被设计成在未达到极限的情况下,如同无操作指令那样执行,由此不影响状态寄存器的标志。因此,如上文所展示,分支指令仅需执行一次。如果所述最大极限指令触发标志,那么所述最小极限指令将不复位所述标志,这是因为所述最小极限指令将如同nop指令那样执行。以下分支指令将正确地执行。此功能可仅需在MINAB(.v)指令之前执行MAXAB(.v)指令。
可实施还无需双核心或多核心设计的进一步指令。根据一些实施例,32位加载/存储累加器指令(LAC.d/SAC.d)可经新增以使中间结果的移动加速,其中分辨率不会损失:现有加载/存储累加器(LAC/SAC)指令移动16位数据;常规dsPIC核心中不存在用于移动1.31累加器数据的直接构件。根据各种实施例,经扩展以移动32位数据的指令可包括:
LAC.d:将32位值从存储器读取,(任选地)移位,接着正负号扩展到累加器A或B中
SAC.d:将累加器A或B的LS 32位(任选地)移位,接着存储到存储器中
根据一些实施例,这些可被实施为单指令字,其可在2个循环中执行。
根据其它实施例,累加器标准化(NORM)指令可经新增以使现有标准化序列加速(使用FBCL指令)。现有CPU ISA通过使用多个指令(包含寻找第一位清除剩余(FBCL))支持累加器数据标准化:
6指令、5循环操作(最多仅16位移位)。
一些实施例可实施仅使用1指令字且在1个循环中执行的NORM指令。所述指令使目标累加器在任一方向上自动标准化达到多16位。其可针对>16位的标准化而级联:
接着,可新增来自每一迭代的指数;
这导致3指令、3循环操作
然而,NORM指令的其它实施方案能够在单次迭代中使整个累加器标准化。
根据一些实施例,位字段指令(BFINS/BFEXT)经新增以改进编译程序效率。编译码常常需要将多个位插入目标字内或提取目标字内的多个位:位字段偏移及宽度是不变恒定值
BFINS:将位字段从CPU W寄存器或从文字值写入目标字中
BFEXT:从目标字读取位字段并将所述位字段加载到CPU W寄存器中
所有位字段指令是2个字、2循环操作:在不具有位字段的情况下,整个操作需要约7个字、7个循环来完成;在具有位字段的情况下,整个操作需要约4个字、4个循环来完成。
根据一些实施例,除法改进提供可中断、非复原除法指令套组(与常规dsPIC系统):执行时间现对于所有除法指令来说是7个循环(P33E:19个循环)(包含REPEAT指令的1个循环)且与使用原始除法REPEAT计数的现有应用程序代码完全向后兼容。
此外,根据一些实施例,替代除法指令集可经提供以改进编译程序寄存器分配效率:现有(32/16位)除法指令:被除数按Wm+1:Wm、除数按Wn及余数:商按W1:W0
在替代除法指令集中:被除数按Wm+1:Wm、除数按Wn及余数:商按Wm+1:Wm;其中保留W1:W0。
总之,可(特定来说)对包括CPU及DSP引擎的dsPIC核心提供以下额外指令。仅第一指令LDSLV及VFSLV经具体设计以用于多核心装置,所有其它指令可任选地以任何组实施:
LDSLV,VFSLV:加载及验证从PRAM
FLIM{.v}:带正负号16位数据值界限检查及限制
MAXAB{.v},MINAB{.v}:累加器1.31数据值界限检查及限制
LAC.d,SAC.d:累加器32位加载及存储
NORM:累加器标准化
BFIN,BFEXT:位字段插入及提取
DIVx2:保留W1:W0的替代除法指令集
根据如图7中所展示的进一步实施例,可提供针对双(多)核心处理器的代码保护方案。此保护方案特定来说对双核心微处理器中的从处理器有利。根据其它实施例,此概念还可适用于单核心处理器或微控制器。图7展示示范性代码保护方案700。快闪存储器可被分成若干段,每一段具有它自己关于其它段的存取的规则。例如,仅可在所述装置或熔断机构的编程期间配置的配置寄存器可经提供以设置存取保护方案。图7展示快闪存储器被划分成用户快闪存储器分区及测试快闪存储器分区。然而,其它实施例可仅提供单个分区或甚至更多分区。所述用户快闪存储器分区被分段为启动段及通用段。此外,可提供中断向量表IVT及AIVT的更小段,所述段可被包含于所述启动段中或可具有取决于当前设置的保护等级的单独保护。图7展示不同位置处的中断向量表IVT及替代中断向量表AIVT。然而,其它实施例可将这两个表集成到可位于所述启动段BS前方或位于任何其它合适位置处的一段VS中。最后,可提供配置段,其包括仅可在所述装置例如通过集成的电路内程序功能而编程时写入的各种装置配置寄存器。根据相应实施方案,所述段的布置可能不同。所述保护方案允许各种不同设置,其中可以不同方式保护每一段。特定来说,可根据特定设置限制从一段到另一段的存取。此外,可根据安全性设置限制到段中的向量化。
如果根据一些实施例实施,那么测试地址空间含有快闪存储器的一些特殊区段,所述区段均在程序空间的上(最高地址)半部中,所述程序空间可例如是24位程序空间。在此实施例中,配置段(通常单区段或更小区段)驻存于用户快闪存储器地址空间(所述24位程序空间的下半部)内:
-一个测试区段经保留以供工厂使用(即,仅可在私有测试模式中写入,否则始终受保护)且含有装置ID信息、装置校准数据的“熔断(fuse)”值等。此区段通常还含有客户仅可写入(无法擦除)的“客户OTP”数据的单行数据。
-在如上文所述的双启动(双面板)装置中,另一测试区段经保留以用于启动(操作)模式熔断值。除非用户擦除整个装置(芯片擦除),否则此区段受保护。
-一或多个测试区段经保留以在装置测试期间使用,且随后由开发工具用来保持Debug Exec。这些区段可在公共测试模式(如同排错模式)中写入。
-配置区段含有用来选择用户选项的所有用户可编程“熔断”。其具有(用户定义)基于所选择的代码保护等级的写入权限。
所有“熔断”数据由快闪控制器作为装置复位序列的部分被自动读取并加载到特殊装置配置寄存器中。
如上文所提及,每一段可具有其自身用来防止来自另一段的读取/写入存取(后文称为“外部”存取)的存取规则。此外,特定来说,可在高安全性设置中限制到段中的向量化。表可取决于执行哪种类型的操作而定义每一段的设置,其中不同操作可具有不同安全性设置,如将在图10中更详细展示。所述安全性可被单独分成读取及写入/擦除保护,其中例如写入保护位可用来单独设置所述写入保护。所述实施方案可根据各种实施例而变化。图8展示具有针对启动段的三个不同保护等级的实施例。图10展示具有针对通用段的三个不同保护等级的实施例。类似表可用于其它段。每一保护等级提供针对从段外部对不同段的读取存取的单独保护。另外,每一等级可设置写入保护是否被设置。在图8中针对所述启动段所展示的实施例及10中针对所述通用段所展示的实施例中,第一等级不提供通常适用于所有经存取段的读取保护。如果写入保护以此模式是作用中的,那么所述写入保护将应用于所有段,所述段接着无法从相应段“外部”编程或擦除。
第二等级被展示为标准等级。图8展示针对所述启动段的保护。在此设置中,所述启动段无法从“外部”读取或写入且取决于写入保护设置,无法由所述启动段内执行的动作写入。图10展示针对所述通用段的设置。在此,所述启动段以及所述通用段可执行所述通用段内的读取操作。如果未设置写入保护位,那么仅允许写入所述通用段。来自测试段内的任何操作将不允许对所述通用段的读取或写入存取。
第三等级被展示为高保护等级。在此设置中,对于所述启动段,除标准设置保护以外,还可限制到所述启动段中的向量化。因此,此额外保护可防止向量表的任何修改。然而,对于所述启动段,所述保护可与所述标准设置相同。
图10展示所述通用段的高安全性设置,即,禁止来自外部的任何存取。换句话来说,所述通用段仅可从所述通用段存储器取。甚至可通过设置相应保护位来禁止来自所述通用段GS内的写入存取。
图11更详细展示根据另一实施例的具有更详细表的实施例,其具有应用模式中的安全性操作。所述操作被列于最左列下方,且在对应行中展示对GS、BS、CS及VS的对应影响。定义各种操作。第一行(到段中的PC滚动更新)涉及到另一段中的程序计数器滚动更新(roll-over)。第二行(到段的PFC)涉及任何类型的程序流变化,例如跳越或分支指令的执行及其对各个段的影响。下一行(来自IVT或AIVT的向量)涉及到特定段中的向量化。下一行(表读取/PSV)涉及对段的PSV或表读取指令存取。下一行(页擦除)涉及将影响相应段的页擦除功能。下一行(行程序)涉及存储器行的编程。在以下行中展示其它动作。因此,不同保护设置可适用于不同类型的动作。某些动作(例如读取操作及写入操作)可在一段内执行但影响其它段。根据各种实施例的保护方案允许选择性地保护这些动作。例如由中断致使的一些动作本身可能并非来自特定段,且因此图11中的表无法区分从中执行所述动作的段。图11中的表展示通过在相应单元格中展示“OK”而允许动作或通过展示“No”或“0”而禁止动作,其中后者指示操作将产生“0”读取。关于图11的一些实例是:
-从段GS执行TBLRD/PSV将允许CPU查看来自段GS的数据而不管段GS安全性等级为何,但如果段BS的安全性被设置为“无”,那么将仅允许CPU查看来自段BS的数据。段CS如段VS那样是总是可读的。
-如果段GS的写入保护被启用及/或段GS的安全性为“高”,那么尝试以段GS为目标的使用在段BS中执行的代码的页擦除将失效。如下文所论述,应注意,段CS具有且称为“增强”的额外安全性等级。
如图11中所展示,可根据不同设置保护各种不同动作,其中可单独保护读取动作及写入动作。然而,其它实施方案无法区分读取与写入。另外,图11展示对于配置段CS,可实施额外安全性等级,其可允许单独的中间保护等级。
根据一些实施例,从PRAM 426可例如通过如上文所提及的通过配置寄存器的熔断电路分配给启动段(BS)或通用段(GS)地址空间。根据另一实施例,所述从PRAM可仅继承主段GS安全性。
因此,从PRAM 426将呈现指派给快闪存储器416的对应主快闪存储器段的安全性等级。LDSLV/VFSLV指令执行现经实施使得其对从中执行所述指令且相应PRAM段被指派到其的相应快闪存储器执行段是敏感的。因此,在执行此指令时,应用相关联代码保护安全性等级。因此,LDSLV/VFSLV在PRAM内被视为读取功能。编程或页擦除功能及其相关联安全性规则仅适用于快闪存储器。因此,在使用在PRAM中执行读取或写入的LDSLV/VFSLV指令时,针对快闪存储器416的BS/GS读取的已定义规则还将适用于从PRAM存取,使得:
LDSLV/VFSLV将在从主装置的BS内执行的情况下工作,且从PRAM被指派给:
(1)BS(而不管段安全性等级为何);
(2)GS,且GS不处于“高”安全性等级。
LDSLV/VFSLV将在从主装置的BS内执行的情况下工作且从PRAM被指派给:
(1)GS(而不管段安全性等级为何);
(2)BS,且BS处于“无”安全性等级。
如果不满足前文所提及的条件,那么LDSLV/VFSLV执行将不具有效应。再者,根据其它实施例,其它条件可适用。上述条件仅是实例。假设将满足快闪存储器存取代码保护规则(针对源数据读取)。
图9展示类似于图8中所展示的启动段的扩展码保护方案。再者,类似表可用于其它段。如果PRAM 426被指派给主快闪存储器416的启动段,那么因此可通过将主BS设置为任何安全性等级(即,除“无”以外的等级)而保护所述启动段不受段GS中的不可信代码影响。相反地,如果所述PRAM被指派给所述主装置的段GS,那么还可通过将主GS设置为“高”安全性而保护所述段GS不受BS中的不可信代码影响。

Claims (54)

1.一种集成电路,其包括:
主处理核心,其具有与非易失性存储器耦合的中央处理单元;
从处理核心,其独立于所述主处理核心而操作且具有与易失性程序存储器耦合的中央处理单元;
其中所述主处理核心经配置以将程序指令直接传送到所述从处理核心的所述易失性程序存储器中;且
其中所述程序指令的传送仅通过在所述主处理核心的所述中央处理单元内执行专用指令而执行,且其中在不通过所述主处理核心移动所述程序指令的情况下执行所述传送。
2.根据权利要求1所述的集成电路,其中所述专用指令具有定义源地址的第一操作数及定义目的地地址的第二操作数,其中所述目的地地址是在所述指令的执行之后自动递增。
3.根据权利要求1所述的集成电路,其中所述专用指令经配置以移动数据,所述数据比正在执行所述专用指令的所述主处理核心的数据宽度更宽。
4.根据权利要求1所述的集成电路,其中所述从处理核心的所述易失性程序存储器具有至少两个面板,其中仅有一个面板相对于所述从处理核心作用,且其中所述主处理核心经配置以仅将程序指令传送到非作用面板。
5.根据权利要求1所述的集成电路,其中所述专用指令致使信息字传送到缓冲器中,且其中所述信息字是从所述缓冲器写入所述易失性程序存储器中。
6.根据权利要求5所述的集成电路,其中所述指令致使所述非易失性存储器输出所述信息字,由此所述信息字被所述缓冲器捕捉。
7.根据权利要求5所述的集成电路,其中所述信息是24位字。
8.根据前述权利要求中的任一者所述的集成电路,其中所述集成电路包括多个从处理核心且所述专用指令具有定义目标从处理核心的第三操作数。
9.根据权利要求2所述的集成电路,其中存储于所述第一操作数中的所述源地址可任选地在所述指令的执行之后自动递增。
10.根据权利要求2所述的集成电路,其中所述源地址存储在与所述主处理核心相关联的外围装置的特殊功能寄存器中。
11.根据权利要求10所述的集成电路,其中所述外围装置是串行通信外围装置。
12.根据权利要求10所述的集成电路,其中所述外围装置是并行输入端口。
13.根据权利要求5-7中任一权利要求所述的集成电路,其中所述主处理核心进一步可操作以执行验证存储于所述易失性程序存储器中的信息字的进一步指令。
14.根据权利要求13所述的集成电路,其中所述进一步指令致使第一信息字传送到所述缓冲器中,且其中比较所述缓冲器的内容与存储于所述易失性程序存储器中的第二信息字。
15.根据权利要求14所述的集成电路,其中所述进一步指令包括应用于所述非易失性存储器以输出所述第一信息字的第一地址及应用于所述易失性程序存储器以输出所述第二信息字的第二地址。
16.根据权利要求14所述的集成电路,其中所述进一步指令进一步验证与所述第一信息字及所述第二信息字相关联的错误校正码ECC。
17.根据权利要求16所述的集成电路,其中可从所述易失性程序存储器读取与所述易失性程序存储器相关联的所述ECC且单独产生与源地址相关联的所述ECC。
18.根据前述权利要求1-7和9-12中任一权利要求所述的集成电路,其中所述主处理核心的所述非易失性存储器包括由保护方案定义的代码保护,且其中所述从处理核心的所述易失性程序存储器具有取决于所述保护方案的设置的代码保护。
19.根据权利要求18所述的集成电路,其中所述保护方案定义所述非易失性存储器的多个段,且其中在所述保护方案中,每一段具有保护设置。
20.根据权利要求19所述的集成电路,其中所述非易失性存储器的每一保护设置具有读取操作的设置及编程或擦除操作的设置。
21.根据权利要求18所述的集成电路,其中所述保护方案提供预定义数目个安全性等级,其中每一安全性等级定义每一段的保护设置。
22.根据权利要求19所述的集成电路,其中所述易失性程序存储器的所述代码保护与所述非易失性存储器的所述段中的一者的所述代码保护相同。
23.根据权利要求19所述的集成电路,其中寄存器存储所述非易失性存储器的哪段经选择以提供所述易失性程序存储器的所述代码保护设置。
24.根据权利要求20所述的集成电路,其中所述非易失性存储器的读取操作的设置适用于所述易失性程序存储器的读取操作及写入操作。
25.根据权利要求19所述的集成电路,其中在段被保护时,取决于保护设置,从一段执行的指令无法对不同段进行操作。
26.根据权利要求19所述的集成电路,其中在段被保护时,取决于保护设置,从一段执行的读取指令仅可对不同段的预定义区域进行操作。
27.根据权利要求26所述的集成电路,其中所述预定义区域存储中断向量。
28.根据权利要求19所述的集成电路,其中所述非易失性存储器包括启动段及通用段。
29.根据权利要求19所述的集成电路,其中所述非易失性存储器进一步包括测试段。
30.一种提供用于多核心集成电路处理装置中的处理核心的固件的方法,所述多核心集成电路处理装置包括:第一处理核心,其具有与非易失性存储器耦合的第一中央处理单元;及第二处理核心,其独立于所述第一处理核心而操作且具有与易失性程序存储器耦合的第二中央处理单元,所述方法包括:
在所述第一中央处理单元内执行专用指令,所述专用指令致使数据写入所述第二处理核心的所述易失性程序存储器中,其中在不通过所述第一处理核心移动所述数据的情况下执行所述数据的传送。
31.根据权利要求30所述的方法,其中所述专用指令具有定义源地址的第一操作数及定义目的地地址的第二操作数,其中所述目的地地址是在所述指令的执行之后自动递增。
32.根据权利要求30所述的方法,其中所述专用指令经配置以移动数据,所述数据比正在执行所述专用指令的所述第一处理核心的数据宽度更宽。
33.根据权利要求30所述的方法,其中所述第二处理核心的所述易失性程序存储器具有至少两个面板,其中仅有一个面板相对于所述第二处理核心作用,且其中所述第一处理核心经配置以仅将程序指令传送到非作用面板。
34.根据权利要求30所述的方法,其中在所述专用指令的执行时,将信息字从所述非易失性存储器传送到缓冲器中,且将所述信息从所述缓冲器写入所述易失性程序存储器中。
35.根据权利要求30所述的方法,其进一步包括在循环中重复所述专用指令。
36.根据权利要求30所述的方法,其中所述集成电路包括多个第二处理核心且所述专用指令具有定义目标第二处理单元的第三操作数。
37.根据权利要求31所述的方法,其中存储于所述第一操作数中的所述源地址可任选地在所述指令的执行之后自动递增。
38.根据权利要求34所述的方法,其进一步包括由所述第一处理核心执行验证存储于所述易失性程序存储器中的信息的进一步指令。
39.根据权利要求38所述的方法,其中所述进一步指令致使第一信息传送到所述缓冲器中,且其中比较所述缓冲器的内容与存储于所述易失性程序存储器中的第二信息。
40.根据权利要求39所述的方法,其中所述进一步指令包括应用于所述非易失性存储器以输出所述第一信息的第一地址及应用于所述易失性程序存储器以输出所述第二信息的第二地址。
41.根据权利要求39所述的方法,其中所述进一步指令进一步验证与所述第一信息及所述第二信息相关联的错误校正码ECC。
42.根据权利要求41所述的方法,其中可从所述非易失性存储器读取与所述非易失性存储器相关联的所述ECC且单独产生与源地址相关联的所述ECC。
43.根据权利要求30所述的方法,其中所述第一处理核心的所述非易失性存储器包括由保护方案定义的代码保护,且其中所述第二处理核心的所述易失性程序存储器具有取决于所述保护方案的设置的代码保护。
44.根据权利要求43所述的方法,其中所述保护方案定义所述非易失性存储器的多个段,且其中每一段在所述保护方案中具有保护设置。
45.根据权利要求43所述的方法,其中所述非易失性存储器的每一保护设置具有读取操作的设置及编程或擦除操作的设置。
46.根据权利要求44所述的方法,其中所述保护方案提供预定义数目个安全性等级,其中每一安全性等级定义每一段的保护设置。
47.根据权利要求44所述的方法,其中所述易失性程序存储器的所述代码保护与所述非易失性存储器的所述段中的一者的所述代码保护相同。
48.根据权利要求47所述的方法,其中寄存器存储所述非易失性存储器的哪段经选择以提供所述易失性程序存储器的所述代码保护设置。
49.根据权利要求45所述的方法,其中所述非易失性存储器的读取操作的设置适用于所述易失性程序存储器的读取操作及写入操作。
50.根据权利要求44所述的方法,其中在段被保护时,取决于保护设置,从一段执行的指令无法对不同段进行操作。
51.根据权利要求44所述的方法,其中在段被保护时,取决于保护设置,从一段执行的读取指令仅可对不同段的预定义区域进行操作。
52.根据权利要求51所述的方法,其中所述预定义区域存储中断向量。
53.根据权利要求30所述的方法,其中所述非易失性存储器包括启动段及通用段。
54.根据权利要求30所述的方法,其中所述非易失性存储器进一步包括测试段。
CN201680024293.4A 2015-04-30 2016-04-29 具有增强指令集的中央处理单元 Active CN107548492B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562154927P 2015-04-30 2015-04-30
US62/154,927 2015-04-30
US201562195692P 2015-07-22 2015-07-22
US62/195,692 2015-07-22
PCT/US2016/030159 WO2016176593A1 (en) 2015-04-30 2016-04-29 Central processing unit with enhanced instruction set

Publications (2)

Publication Number Publication Date
CN107548492A CN107548492A (zh) 2018-01-05
CN107548492B true CN107548492B (zh) 2021-10-01

Family

ID=55963480

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680024293.4A Active CN107548492B (zh) 2015-04-30 2016-04-29 具有增强指令集的中央处理单元

Country Status (7)

Country Link
US (2) US10983931B2 (zh)
EP (1) EP3289442B1 (zh)
JP (1) JP2018514868A (zh)
KR (1) KR20170140225A (zh)
CN (1) CN107548492B (zh)
TW (1) TW201706856A (zh)
WO (1) WO2016176593A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111679787B (zh) * 2016-04-27 2023-07-18 慧荣科技股份有限公司 闪存装置、闪存控制器及闪存存储管理方法
US10019314B2 (en) 2016-04-27 2018-07-10 Silicon Motion Inc. Flash memory apparatus and storage management method for flash memory
US11872623B2 (en) 2016-11-04 2024-01-16 Lg Chem, Ltd. Thermosetting composition
JP2020510951A (ja) * 2017-06-12 2020-04-09 サンディスク テクノロジーズ エルエルシー マルチコアオンダイメモリマイクロコントローラ
KR102032146B1 (ko) 2018-04-11 2019-10-15 경희대학교 산학협력단 소자 결점을 보완하기 위한 구간 선형 정류 유닛을 사용하는 인공신경망 시스템
CN111382429B (zh) * 2018-12-27 2022-12-27 华为技术有限公司 指令的执行方法、装置及存储介质
CN109886416A (zh) * 2019-02-01 2019-06-14 京微齐力(北京)科技有限公司 集成人工智能模块的系统芯片及机器学习方法
CN109870921B (zh) * 2019-03-26 2022-04-01 广东美的制冷设备有限公司 驱动控制电路与家电设备
TWI715371B (zh) * 2019-12-25 2021-01-01 新唐科技股份有限公司 一次性可編程記憶體裝置及其容錯方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6327648B1 (en) * 1994-12-09 2001-12-04 Cirrus Logic, Inc. Multiprocessor system for digital signal processing
CN1401168A (zh) * 2000-12-13 2003-03-05 索尼株式会社 接收装置和接收方法
CN1525353A (zh) * 2003-09-17 2004-09-01 中兴通讯股份有限公司 多处理器系统及其共享引导模块的方法
CN1531275A (zh) * 2003-03-13 2004-09-22 马维尔国际贸易有限公司 使用多端口存储器的体系结构、装置、系统及其使用方法
CN1724980A (zh) * 2004-07-21 2006-01-25 株式会社日立制作所 存储系统
CN104412242A (zh) * 2012-06-27 2015-03-11 北欧半导体公司 内存保护

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5167028A (en) * 1989-11-13 1992-11-24 Lucid Corporation System for controlling task operation of slave processor by switching access to shared memory banks by master processor
US5226138A (en) * 1990-11-27 1993-07-06 Sun Microsystems, Inc. Method for selectively transferring data instructions to a cache memory
US7272703B2 (en) * 1997-08-01 2007-09-18 Micron Technology, Inc. Program controlled embedded-DRAM-DSP architecture and methods
ITMI981564A1 (it) * 1998-07-09 2000-01-09 St Microelectronics Srl Memoria non volatile in grado di eseguire un programma autonomamente
US6260082B1 (en) * 1998-12-23 2001-07-10 Bops, Inc. Methods and apparatus for providing data transfer control
GB2365545B (en) * 1999-12-23 2004-06-02 Ibm Data processing system with master and slave processors
US6691216B2 (en) 2000-11-08 2004-02-10 Texas Instruments Incorporated Shared program memory for use in multicore DSP devices
US6895479B2 (en) * 2000-11-15 2005-05-17 Texas Instruments Incorporated Multicore DSP device having shared program memory with conditional write protection
US6349056B1 (en) 2000-12-28 2002-02-19 Sandisk Corporation Method and structure for efficient data verification operation for non-volatile memories
US7007172B2 (en) * 2001-06-01 2006-02-28 Microchip Technology Incorporated Modified Harvard architecture processor having data memory space mapped to program memory space with erroneous execution protection
US7325122B2 (en) * 2004-02-20 2008-01-29 International Business Machines Corporation Facilitating inter-DSP data communications
US7917753B2 (en) * 2005-05-16 2011-03-29 Texas Instruments Incorporated Transferring control between programs of different security levels
US20070150895A1 (en) 2005-12-06 2007-06-28 Kurland Aaron S Methods and apparatus for multi-core processing with dedicated thread management
US20080235493A1 (en) 2007-03-23 2008-09-25 Qualcomm Incorporated Instruction communication techniques for multi-processor system
GB2466695B (en) * 2007-06-18 2011-11-23 Fujitsu Ltd Processor and prefetch support program
WO2009090502A1 (en) * 2008-01-16 2009-07-23 Freescale Semiconductor, Inc. Processor based system having ecc based check and access validation information means
US20110087922A1 (en) * 2009-10-09 2011-04-14 National Tsing Hua University Test method and tool for master-slave systems on multicore processors
US8478974B2 (en) 2010-06-23 2013-07-02 Assured Information Security, Inc. Method and system for reducing an impact of malware during a booting sequence
US8904190B2 (en) 2010-10-20 2014-12-02 Advanced Micro Devices, Inc. Method and apparatus including architecture for protecting sensitive code and data
US9021170B2 (en) * 2011-06-29 2015-04-28 Texas Instruments Incorporated System and method for improving ECC enabled memory timing
US9195581B2 (en) * 2011-07-01 2015-11-24 Apple Inc. Techniques for moving data between memory types
US9858229B2 (en) 2014-09-30 2018-01-02 International Business Machines Corporation Data access protection for computer systems
RU2580016C1 (ru) * 2014-10-17 2016-04-10 Закрытое акционерное общество "Лаборатория Касперского" Способ передачи управления между областями памяти

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6327648B1 (en) * 1994-12-09 2001-12-04 Cirrus Logic, Inc. Multiprocessor system for digital signal processing
CN1401168A (zh) * 2000-12-13 2003-03-05 索尼株式会社 接收装置和接收方法
CN1531275A (zh) * 2003-03-13 2004-09-22 马维尔国际贸易有限公司 使用多端口存储器的体系结构、装置、系统及其使用方法
CN1525353A (zh) * 2003-09-17 2004-09-01 中兴通讯股份有限公司 多处理器系统及其共享引导模块的方法
CN1724980A (zh) * 2004-07-21 2006-01-25 株式会社日立制作所 存储系统
CN104412242A (zh) * 2012-06-27 2015-03-11 北欧半导体公司 内存保护

Also Published As

Publication number Publication date
US10776292B2 (en) 2020-09-15
JP2018514868A (ja) 2018-06-07
US20160321202A1 (en) 2016-11-03
EP3289442A1 (en) 2018-03-07
KR20170140225A (ko) 2017-12-20
WO2016176593A1 (en) 2016-11-03
US10983931B2 (en) 2021-04-20
EP3289442B1 (en) 2023-04-19
CN107548492A (zh) 2018-01-05
TW201706856A (zh) 2017-02-16
US20190188163A1 (en) 2019-06-20

Similar Documents

Publication Publication Date Title
CN107548492B (zh) 具有增强指令集的中央处理单元
JP6507435B2 (ja) 命令エミュレーションプロセッサ、方法、およびシステム
JP5668143B2 (ja) データ処理装置のデバッグ
US9733950B2 (en) Boot sequencing for multi boot devices
JP6306578B2 (ja) メモリ保護装置及び保護方法
US9465750B2 (en) Memory protection circuit, method and processing unit utilizing memory access information register to selectively allow access to memory areas by virtual machines
EP2669807A2 (en) Processor resource and execution protection methods and apparatus
US10599547B2 (en) Monitoring the operation of a processor
GB2514882A (en) Instruction emulation processors, methods, and systems
BR102020019667A2 (pt) método e aparelho para criptografia de memória total multichave baseada em derivação de chave dinâmica
KR20100101090A (ko) 개선된 마이크로프로세서 또는 마이크로컨트롤러
TW201947397A (zh) 多核心系統的記憶體池分配
KR20060002664A (ko) 내장 시스템의 메모리 어드레스의 매핑을 제어하는 장치와방법
TWI617984B (zh) 雙開機區段切換機制
KR20100087309A (ko) 개선된 마이크로프로세서 또는 마이크로컨트롤러
US20060259726A1 (en) Systems and methods for secure debugging and profiling of a computer system
EP4016288A1 (en) Isa opcode parameterization and opcode space layout randomization
CN105204896A (zh) 一种数字存储示波器的BootLoader设计方法
US20020004877A1 (en) Method and system for updating user memory in emulator systems
JP6603100B2 (ja) メモリ制御装置及びメモリ制御方法
JP2020009498A (ja) メモリ制御装置及びメモリ制御方法
KR20090128672A (ko) 다중 부팅 모드를 지원하는 장치 및 방법
JP2005157537A (ja) メモリアクセス監視装置

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