CN112083965A - 用于管理用不同大小的指令操作的计算单元的方法和设备 - Google Patents

用于管理用不同大小的指令操作的计算单元的方法和设备 Download PDF

Info

Publication number
CN112083965A
CN112083965A CN202010538243.6A CN202010538243A CN112083965A CN 112083965 A CN112083965 A CN 112083965A CN 202010538243 A CN202010538243 A CN 202010538243A CN 112083965 A CN112083965 A CN 112083965A
Authority
CN
China
Prior art keywords
processing unit
instructions
integrated circuit
selection signal
response
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.)
Granted
Application number
CN202010538243.6A
Other languages
English (en)
Other versions
CN112083965B (zh
Inventor
L·帕拉迪
I·A·厄齐
J-F·迪雷
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.)
STMicroelectronics Grenoble 2 SAS
STMicroelectronics Grand Ouest SAS
Original Assignee
STMicroelectronics Grenoble 2 SAS
STMicroelectronics Grand Ouest SAS
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 STMicroelectronics Grenoble 2 SAS, STMicroelectronics Grand Ouest SAS filed Critical STMicroelectronics Grenoble 2 SAS
Priority to CN202410518889.6A priority Critical patent/CN118426862A/zh
Publication of CN112083965A publication Critical patent/CN112083965A/zh
Application granted granted Critical
Publication of CN112083965B publication Critical patent/CN112083965B/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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • 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/30047Prefetch instructions; cache control instructions
    • 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/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • 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/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • 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/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Microcomputers (AREA)

Abstract

本公开的实施例涉及用于管理能够利用不同大小的指令进行操作的计算单元的操作的方法和设备。集成电路包括处理单元,处理单元被配置用于:利用启动指令的集合来启动,然后确定应用程序的指令的大小,并且可以在重新配置的同时主动地重启,以便其执行应用程序的指令。结果,仅需要一个启动存储器。

Description

用于管理用不同大小的指令操作的计算单元的方法和设备
相关申请的交叉引用
本申请要求于2019年6月13日提交的法国专利申请号1906337的权益,该申请通过引用结合于此。
技术领域
本发明的各种实施例及其实现涉及集成电路,并且更具体地涉及形成本领域技术人员已知的片上系统(或SoC)的集成电路。
背景技术
片上系统包括处理单元和非易失性启动存储器,非易失性启动存储器包括用于启动处理单元的指令。
存在能够根据不同的操作模式容易地进行操作的处理器,每个操作模式由指令的大小(例如,32位或64位)限定。
这样的处理器因此能够执行以32或64位编码的应用程序。
目前,并入这样的处理器的片上系统还并入了协同处理器。
当片上系统启动时,只有协同处理器开启并执行以单个固定大小(例如,32位)编码的指令,处理器保持复位状态。
协同处理器然后将应用程序的代码加载到程序存储器中,并标识指令的大小。
然后,协同处理器对处理器进行相应地配置,并使用具有所标识的大小的启动指令来将其启动。
但是,协同处理器和相关联的外围设备的实现需要在硅片上有较大的表面积,导致片上系统的附加功耗,并且不适配于小尺寸的片上系统。
另一可能的解决方案包括在不同芯片上使用分别具有32位和64位的两个启动存储器的两个系统。
这样的解决方案避免了使用协同处理器,但是需要使用两个片上系统。
因此,需要降低包括能够根据若干不同大小的指令集中的所选择的指令集进行操作和启动的处理单元(例如,微处理器)的集成电路或片上系统的复杂度和能耗。
发明内容
根据实施例及其实现方式,有利地提供了被设计为执行应用程序以根据应用程序的编码大小来确定其操作条件的处理单元本身的使用,以及以如下方式配置的处理单元的使用:处理单元将其自身配置为潜在地控制其自身的重启,从而在程序存储器内搜索应用程序的指令。
根据一个方面,提供了用于管理处理单元的操作的方法,处理单元被设计为执行利用可能具有不同参考大小(例如,32位或64位)的指令而被编码的应用程序,方法包括:利用启动指令的集合来启动处理单元,该启动指令的集合具有取自参考大小之间的大小(例如,32位);向处理单元递送表示应用程序的所述指令的参考大小的选择信号;以及在由选择信号表示的参考大小与启动指令的大小不同的情况下,由处理单元生成重启命令,并基于该重启命令对处理单元进行重新配置和重启,以便其执行应用程序的指令。
处理单元因此被配置用于启动具有默认大小(固定大小)的指令集,然后用于确定应用程序的指令的大小,并且可以在对其自身进行重新配置时将其自身重启,以执行应用程序的指令。
该重启命令尤其允许将处理单元的寄存器复位,并且特别地,包含应用程序的指令的存储器地址允许处理单元通过执行应用程序的指令指向该地址来进行重启。
换言之,在处理单元的第一启动(或“冷”启动)与片上系统的启动重合时,处理单元执行在启动存储器中包含的启动指令,然后在处理单元的重启(换言之,稍后的本地启动或“热”启动)时(由于未复位,片上系统本身未启动),经重新配置的处理单元执行应用程序的指令。
因此,不需要协同处理器来执行对处理单元(微处理器)的管理。
处理单元通常连接到总线。
因此,根据一个实施例,响应于由处理单元生成的重启命令,并且当满足以下两个条件时:没有数据正在通过总线进行传输,并且处理单元未在执行任何操作,执行处理单元的重新配置和重启来执行应用程序的指令。
这样可以避免在重启处理单元时通过总线传输虚拟数据。
根据另一实施例,方法包括:在由选择信号表示的参考大小是启动指令的大小的情况下,由处理单元执行应用程序,而不重启处理单元。
然而,响应于由处理单元生成的重启命令,并且在满足以下两个条件时:没有数据正在通过总线进行传输,并且处理单元未在执行任何操作,即使在由选择信号表示的参考大小是启动指令的大小的情况下,也可以考虑执行处理单元的重启来执行应用程序的指令。
因此,这里再次避免了在重启处理单元时通过总线传输的虚拟数据。
根据一个实施例,当处理单元与高速缓存存储器相关联时,在高速缓存存储器进一步不活动时,执行处理单元的重启。
因此,避免了在处理单元重启时在高速缓存存储器中存储的虚拟数据。
根据一个实施例,选择信号包括例如从SD卡复制的数字字或所述应用程序的报头。
数字字例如可以存储在一次可编程(OTP)类型的寄存器中,或者由用户递送到集成电路的输入。
尽管可以提供多于两个的参考大小,但是通常处理单元被设计为执行利用能够具有两个不同参考大小的指令编码的应用程序。
例如,两个参考大小分别等于32位和64位。
根据另一方面,提供了集成电路或片上系统,其包括:程序存储器,被配置用于存储能够具有不同参考大小的应用程序的指令;启动存储器部件,被配置用于存储具有参考大小之一的启动指令的集合;处理单元,被设计为执行所述应用程序,并被配置用于接收表示应用程序的所述指令的参考大小的选择信号;以及控制部件,被配置用于利用启动指令的集合来启动处理单元,并且在由选择信号表示的参考大小与启动指令的大小不同的情况下,接收由处理单元递送的重启命令,并使用该启动命令来将处理单元进行重新配置并重启,以便其执行应用程序的指令。
根据一个实施例,集成电路还包括连接到处理单元的总线,并且控制部件被配置用于对处理单元进行重新配置和重启,以便其响应于由处理单元生成的所述重启命令并在满足以下两个条件时:没有数据正在通过总线被传输,并且处理单元未在执行任何操作,执行应用程序的指令。
根据另一实施例,在由选择信号表示的参考大小是启动指令的大小的情况下,处理单元被配置为在不预先重启的情况下执行应用程序。
根据又一实施例,集成电路还包括连接到处理单元的总线,并且控制部件被配置用于对处理单元进行重新配置和重启,以便其在由选择信号表示的参考大小是启动指令的大小的情况下,响应于由处理单元生成的重启命令并在满足以下两个条件时:没有数据正在通过总线传输,并且处理单元未在执行任何操作,执行应用程序的指令。
根据又一实施例,当集成电路还包括与处理单元相关联的高速缓存存储器时,控制部件被配置用于当高速缓存存储器还不活动时,对处理单元进行重新配置和重启。
根据又一实施例,处理单元包括复位引脚,并且控制部件包括复位控制器,复位控制器被配置用于在所述引脚上递送启动信号,以在默认情况下,利用启动指令的集合来启动处理单元。
根据又一实施例,控制部件包括重启级,重启级被配置用于响应于由处理单元生成的重启命令并且在满足所有上述条件(前述)时,将重启信号递送到所述复位引脚上。
根据又一实施例,重启级包括逻辑电路,逻辑电路被配置用于接收所述重启命令和与所述条件相对应的输入信号,并且用于将重启信号递送到所述复位引脚上。
根据又一实施例,控制部件被配置用于在重启时向处理单元递送表示所表示的参考大小的第一指示和表示应用程序的指令的存储地址的第二指示。
根据又一实施例,控制部件包括:在每次启动之后(换言之,在每次“冷”启动之后)一次可写并且意图包含第一指示的第一存储器、以及被设计用于存储第二指示的第二存储器,并且处理单元被配置为将这两个指示存储在两个相应存储器中以进行重启。
根据又一实施例,集成电路包括辅助存储器,辅助存储器被设计为存储表示选择信号的数字字。
根据又一实施例,处理单元被配置用于读取形成所述选择信号的应用程序报头。
根据又一实施例,集成电路包括被设计为接收选择信号的通信接口。
根据另一实施例,处理单元被设计为执行利用能够具有两个不同参考大小的指令编码的应用程序。
优选地,两个参考大小分别等于32位和64位。
根据另一方面,提供了并入如上文所限定的集成电路的装置。
附图说明
通过检查非限制性实施例的详细描述并根据附图,本发明的其他优点和特征将变得显而易见,在附图中:
图1-图6图示了本发明的各种实施例和实现方式。
具体实施方式
参考图1,示出了并入电子装置CP(例如,平板电脑)内的集成电路IC的实施例的一个示例。
集成电路IC在此处形成片上系统(“SOC”),并且包括:程序存储器11,被配置为存储能够具有不同参考大小的指令的应用程序APP的指令;启动存储器部件12,被配置为存储具有参考大小之一的启动指令的集合,启动指令的大小是固定的;处理单元13(例如,微处理器),被设计为执行所述应用程序并被配置为接收选择信号S1,选择信号S1表示应用程序的所述指令的参考大小;以及控制部件14,其结构和功能将在下文中描述。
处理单元13此处包括至少一个高速缓存存储器15(后者是可选的)和至少一个处理核15a。
不言而喻,处理单元13可以包括若干高速缓存存储器和/或若干处理核。
为了简化起见,假设处理单元13被设计为执行利用能够具有两个不同参考大小的指令进行编码的应用程序APP,例如参考大小分别等于32位和64位。
启动存储器部件包括例如存储例如以32位编码的启动指令的集合的非易失性存储器。
作为变型,启动指令的集合的参考大小可以等于64位。
然而,不论应用程序指令的大小如何,集成电路仅包括单个启动存储器12,该单个启动存储器12存储以固定数目的位进行编码的单个启动指令的集合。
集成电路IC还包括总线16,总线16连接到处理单元13、程序存储器11、启动存储器部件12、控制部件14以及辅助存储器18,此处辅助存储器18旨在存储表示选择信号S1的数字字M1。
集成电路IC进一步包括加载接口19,加载接口19用于在执行集成电路IC的启动指令期间,将应用程序APP加载到易失性存储器类型的程序存储器11中。
控制部件14被配置用于:在集成电路的初始启动期间,换言之,在处理单元的第一启动(称为“冷”启动)期间,利用启动指令的集合来启动处理单元13。
当集成电路或片上系统已启动时,处理单元的后续启动是“热”启动,也称为“重启”。
此外,控制部件14被配置为:特别是在由选择信号S1表示的参考大小与启动指令的大小不同的情况下,接收由处理单元13递送的重启命令S2。
响应于由处理单元13生成的重启命令,并且在以下情况下:a)没有数据通过总线16传输,b)高速缓存存储器15不活动,并且c)处理单元13未执行任何操作,换言之,当处理核15a不执行任何操作时,控制部件14被配置为对处理单元13进行重新配置和重启,以便其执行应用程序APP的指令。该重启命令包括:表示所表示的参考大小的第一指示S3,以及表示应用程序APP的指令的程序存储器11中的存储地址的第二指示S4。
在冷启动的情况下,处理单元13执行从启动存储器12中的初始地址存储的启动指令。该初始地址通过信号S4进行通信。
前述条件a)、b)和c)允许处理单元13以避免虚拟数据通过总线16传输或存储在高速缓存存储器15中的方式重启。
如果由选择信号S1表示的参考大小是启动指令的大小,则处理单元13可以被配置为在不预先重启的情况下,执行应用程序APP。
然而,即使由选择信号S1表示的参考大小是启动指令的大小,处理单元的重启也是可能的。
换言之,控制部件然后被配置为响应于由处理单元13生成的重启命令并且如果满足前述重启条件a)、b)和c),换言之,如果没有数据通过总线16传输,高速缓存存储器15为空,并且处理单元13不执行任何操作,则利用应用程序的指令来重启处理单元13。重启之后,处理单元13执行应用程序APP。
此外,控制部件14连接到:处理单元13的复位引脚20,其被设计为接收启动信号S5或重启信号S6;用于指示所表示的参考大小的引脚21,其被设计为接收表示所表示的参考大小的信号S3;以及被设计为接收信号S4的寻址引脚22,信号S4表示应用程序APP的指令在程序存储器11中的存储地址或启动指令的集合在启动存储器12中的初始地址。
图2图示了控制部件14的一个示例性实施例。
控制部件14包括常规结构的复位控制器23、重启级24、在每次启动之后一次可写的第一存储器25和连接到总线16的第二存储器26。
复位控制器23被配置为在“冷”启动期间,将启动信号S5递送到引脚20上,以利用启动指令的集合来启动处理单元13。
第一存储器25例如基于由状态机和逻辑电路控制的寄存器来实现,状态机和逻辑电路在重启之后,只要处理单元的新启动未发生,则防止寄存器中的新写入。
控制部件14还包括:包含启动指令的大小的第三非易失性存储器27;以及包含启动指令的集合在启动存储器12中的存储地址的第四非易失性存储器28;以及两个多路复用器29和30。
重启级24被配置为响应于由处理单元13生成的重启命令并且在满足所有上述重启条件时,将重启信号S6递送到复位引脚20上。
第一存储器25包含应用程序APP的指令的大小,第二存储器26包含应用程序APP在存储器11中的存储地址,处理单元13还被配置用于存储大小和应用程序APP在这两个相应存储器中的地址以进行重启。
第一多路复用器29包括:耦合到第三存储器27的第一输入、耦合到第一存储器25的第二输入、连接到处理单元13的引脚21的输出以及连接到复位控制器23的输出的控制输入。
第二多路复用器30包括:耦合到第四存储器28的第一输入、耦合到第二存储器26的第二输入、连接到处理单元13的引脚22的输出以及连接到复位控制器23的输出的控制输入。
第一和第二多路复用器29和30被配置为:当复位控制器23的输出处于低“0”状态时,将第三存储器27和第四存储器28的内容分别递送到处理单元13的引脚21和22上,并且当复位控制器23的输出处于低“1”状态时,将第一存储器25和第二存储器26的内容分别递送到处理单元13的引脚21和22上。
换言之,当集成电路IC启动(“冷”启动)时,信号S3和S4分别包含第三存储器27和第四存储器28的内容,并且当处理单元重启13(“热”启动)时,信号S3和S4分别包含第一存储器25和第二存储器26的内容。
重启级24包括逻辑电路31,逻辑电路31被配置为:接收重启命令S2,并接收与重启条件相对应的信号,以及将重启信号S6递送到复位引脚20上。
逻辑电路24包括:连接到总线16的五个输入32、33、34、35和36,以及连接到引脚20的输出37。
输入36连接到复位控制器23,并且输入32接收启动命令S2。
当复位控制器不请求处理单元13的中断时,信号S5默认为“1”。
信号S33、S34和S35分别流入输入33、34和35。
当没有指令通过总线16递送时,信号S35为“0”,反之则为“1”。
当高速缓存存储器15不为空时,信号S34为“1”,反之则为“0”。
当处理核15a不执行任何指令时,信号S33为“1”,反之则为“0”。
逻辑电路31包括反相器38、NAND逻辑门39、用于增加时钟信号的脉冲宽度的部件40(“脉冲展宽器”)和AND逻辑门41。
输入35连接到反相器38的输入,反相器38的输出连接到NAND逻辑门39的一个输入。
输入32、33和34各自连接到NAND逻辑门39的不同输入。
NAND逻辑门39的输出连接到用于增加时钟信号的脉冲宽度的部件40的输入。
部件40的输出连接到AND逻辑门41的第一输入,输入36连接到AND逻辑门41的第二输入,并且AND逻辑门41的输出连接到输出37。
在下文中,相同的字母数字附图标记表示相同的元素。
图3图示了集成电路IC的第二实施例的一个示例。
这再次示出了程序存储器11、启动存储器部件12、处理单元13、控制部件14和总线16。
该实施例与图1所示的实施例的不同之处在于:通信接口42连接到总线16,并且被配置用于接收选择信号S1。
选择信号S1例如可以由片上系统的用户通信。
图4图示了集成电路IC的第三实施例的一个示例。
这又包括程序存储器11、启动存储器部件12、处理单元13、控制部件14和总线16。
该实施例与图1所示的实施例的不同之处在于,应用程序APP包括形成选择信号S1的报头H,应用程序APP被存储在集成电路IC外部的存储器(例如,SD卡43)中。
当应用程序APP被复制到程序存储器11中时,处理单元13读取形成选择信号S1的应用程序APP的报头H。
参考图5,示出了集成电路IC的第一示例性实施例。
在步骤40中,复位控制器23启动片上系统IC,具体是处理单元13。
信号S3和S4分别包括第三存储器27和第四存储器28的内容,使得处理单元13利用在存储器部件12中包含的启动指令来启动。
应用程序APP被加载到存储器11中。
然后,例如在步骤41中,将选择信号S1递送到处理单元13。
如果集成电路IC包括辅助存储器18,则处理单元13在该存储器18中读取表示选择信号S1的数字字M1。
如果集成电路IC包括通信接口42,则处理单元13经由所述接口来读取选择信号S1。
如果应用程序APP包括报头H和通信接口,则当其被复制时,处理单元13基于报头H来确定选择信号S1。
在步骤42中,处理单元13将选择信号S1中指示的大小与启动指令的大小进行比较。
如果启动指令的大小和由选择信号S1表示的大小相等,则处理单元13执行利用具有所述所表示的大小的指令进行编码的应用程序APP(步骤43)。
如果由选择信号S1表示的参考大小不同于启动指令的默认大小,则在步骤44中,处理单元将应用程序APP的指令的大小和应用程序APP在存储器11中的地址分别存储在第一存储器25和第二存储器26中。然后,处理单元13生成重启命令S2。
如果在步骤45中满足所有重启条件,换言之,如果没有数据通过总线16传输,如果高速缓存存储器15为空,并且如果处理单元13未执行任何操作,则方法继续进行步骤46。
在步骤46中,重启级24将信号S6递送到复位引脚20上,将信号S3(包括第一存储器25的内容)递送到引脚21上,并且将信号S4(包括第二存储器26的内容)递送到引脚22上。
处理单元13利用大小等于所表示的参考大小的应用程序APP的指令来重启。
然后,方法在步骤43处继续。
如果在步骤45处不满足重启条件,则方法将等待直到满足重启条件。
参考图6,图6图示了集成电路IC的第二示例性实施例。
这又包括步骤40、41、42、43、44、45和46。
该实施例与图5所示的第一示例性实施例的不同之处在于,即使在步骤42中,启动指令的参考大小和由选择信号S1表示的参考大小相等,在步骤48中,处理单元13将应用程序APP的指令大小和应用程序APP在存储器11中的地址分别存储在第一存储器25和第二存储器26中,然后生成重启命令S2,使得处理单元13利用应用程序APP的指令重启。
如果在步骤45中满足所有重启条件,换言之,如果没有数据通过总线16传输,如果高速缓存存储器15为空,并且如果处理单元13没有执行任何操作,则方法在步骤46处、然后在步骤43处继续。
显然,利用与高速缓存存储器15相关联的处理单元13的上述方法也适用于其中不存在高速缓存存储器的情况,其中不活动高速缓存存储器上的条件不适用。

Claims (22)

1.一种用于操作处理单元的方法,所述处理单元被配置为执行应用程序,所述应用程序能够利用具有不同参考大小的指令进行编码,所述方法包括:
利用启动指令的集合启动所述处理单元,所述启动指令具有所述参考大小中的第一参考大小;
向所述处理单元递送选择信号,所述选择信号表示所述应用程序的所述指令的第二参考大小;
响应于由所述选择信号表示的所述第二参考大小不同于所述启动指令的所述第一参考大小:
由所述处理单元生成重启命令;以及
基于所述重启命令来对所述处理单元进行重新配置和重启;以及
由所述处理单元执行所述应用程序的所述指令。
2.根据权利要求1所述的方法,其中所述处理单元连接到总线,并且所述处理单元的所述重新配置和重启响应于所述重启命令、并且响应于以下两个条件被满足而被执行:
没有数据正在通过所述总线被传输,以及
所述处理单元未在执行任何操作。
3.根据权利要求2所述的方法,其中所述处理单元与高速缓存存储器相关联,并且所述处理单元的所述重启进一步响应于所述高速缓存存储器不活动而被执行。
4.根据权利要求1所述的方法,还包括:
向所述处理单元递送第二选择信号,所述第二选择信号表示所述应用程序的所述指令的第三参考大小;以及
响应于由所述第二选择信号表示的所述第三参考大小与所述启动指令的所述第一参考大小相同:
在不重启所述处理单元的情况下,由所述处理单元执行所述应用程序的所述指令。
5.根据权利要求1所述的方法,其中所述选择信号包括数字字或所述应用程序的报头。
6.根据权利要求1所述的方法,其中所述应用程序能够利用具有两个不同参考大小的指令进行编码。
7.根据权利要求6所述的方法,其中所述两个不同参考大小分别等于32位和64位。
8.一种集成电路,包括:
程序存储器,被配置为存储应用程序,所述应用程序能够利用具有不同参考大小的指令进行编码;
启动存储器,被配置为存储启动指令的集合,所述启动指令具有所述参考大小中的第一参考大小;
处理单元,被配置为:执行所述应用程序,并且接收选择信号,所述选择信号表示所述应用程序的所述指令的第二参考大小;以及
控制单元,被配置为:利用所述启动指令的集合启动所述处理单元,并且响应于由所述选择信号表示的所述第二参考大小不同于所述启动指令的所述第一参考大小:
从所述处理单元接收重启命令;以及
基于所述重启命令来对所述处理单元进行重新配置和重启,以便所述处理单元执行具有所述第二参考大小的所述应用程序的所述指令。
9.根据权利要求8所述的集成电路,还包括总线,所述总线被连接到所述处理单元,其中所述控制单元被配置为对所述处理单元进行重新配置和重启,以便所述处理单元响应于由所述处理单元生成的所述重启命令、并且响应于以下两个条件被满足而执行所述应用程序的所述指令:
没有数据正在通过所述总线被传输,以及
所述处理单元未在执行任何操作。
10.根据权利要求8所述的集成电路,其中所述处理单元还被配置为:响应于由所述选择信号表示的所述第二参考大小与所述启动指令的所述第一参考大小相同,在未预先重启的情况下,执行所述应用程序。
11.根据权利要求8所述的集成电路,还包括总线,所述总线被连接到所述处理单元,其中所述控制单元被配置为:响应于由所述选择信号表示的所述第二参考大小与所述启动指令的所述第一参考大小相同,响应于由所述处理单元生成的所述重启命令,并且响应于以下两个条件被满足,对所述处理单元进行重新配置和重启,以便所述处理单元执行所述应用程序的所述指令:
没有数据正在通过所述总线被传输,以及
所述处理单元未在执行任何操作。
12.根据权利要求9所述的集成电路,进一步包括与所述处理单元相关联的高速缓存存储器,其中所述控制单元被配置为:进一步响应于所述高速缓存存储器不活动而对所述处理单元进行重新配置和重启。
13.根据权利要求8所述的集成电路,其中所述处理单元包括复位引脚,并且其中所述控制单元包括复位控制器,所述复位控制器被配置为:将启动信号递送到所述复位引脚上,以利用所述启动指令的集合来启动所述处理单元。
14.根据权利要求9所述的集成电路,其中所述处理单元包括复位引脚,并且其中所述控制单元包括:
复位控制器,被配置为将启动信号递送到所述复位引脚上,以利用所述启动指令的集合来启动所述处理单元;以及
重启级,被配置为:响应于由所述处理单元生成的所述重启命令,并且响应于所述条件被满足,将重启信号递送到所述复位引脚上。
15.根据权利要求14所述的集成电路,其中所述重启级包括逻辑电路,所述逻辑电路被配置为:接收所述重启命令和与所述条件相对应的输入信号,并且将所述重启信号递送到所述复位引脚上。
16.根据权利要求8所述的集成电路,其中所述控制单元被配置为:在重启期间,向所述处理单元递送第一指示和第二指示,所述第一指示表示所表示的所述第二参考大小,所述第二指示表示所述应用程序的所述指令的存储地址。
17.根据权利要求16所述的集成电路,其中所述控制单元包括:在每次重启之后一次可写的第一存储器,所述第一存储器用于存储所述第一指示;以及用于存储所述第二指示的第二存储器,并且其中所述处理单元被配置为:响应于每次重启,将所述第一指示和所述第二指示存储在相应的所述第一存储器和所述第二存储器中。
18.根据权利要求8所述的集成电路,进一步包括辅助存储器,所述辅助存储器被配置为存储表示所述选择信号的数字字。
19.根据权利要求8所述的集成电路,其中所述处理单元被配置为读取指示所述选择信号的所述应用程序的报头。
20.根据权利要求8所述的集成电路,进一步包括通信接口,所述通信接口被配置为接收所述选择信号。
21.根据权利要求8所述的集成电路,其中所述应用程序能够利用具有两个不同参考大小的指令进行编码。
22.根据权利要求21所述的集成电路,其中所述两个不同参考大小分别等于32位和64位。
CN202010538243.6A 2019-06-13 2020-06-12 用于管理用不同大小的指令操作的计算单元的方法和设备 Active CN112083965B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410518889.6A CN118426862A (zh) 2019-06-13 2020-06-12 用于管理用不同大小的指令操作的计算单元的方法和设备

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1906337 2019-06-13
FR1906337A FR3097345B1 (fr) 2019-06-13 2019-06-13 Procede de gestion du fonctionnement d’une unite de calcul capable de fonctionner avec des instructions de tailles differentes et circuit integre correspondant

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202410518889.6A Division CN118426862A (zh) 2019-06-13 2020-06-12 用于管理用不同大小的指令操作的计算单元的方法和设备

Publications (2)

Publication Number Publication Date
CN112083965A true CN112083965A (zh) 2020-12-15
CN112083965B CN112083965B (zh) 2024-05-07

Family

ID=68138418

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202410518889.6A Pending CN118426862A (zh) 2019-06-13 2020-06-12 用于管理用不同大小的指令操作的计算单元的方法和设备
CN202010538243.6A Active CN112083965B (zh) 2019-06-13 2020-06-12 用于管理用不同大小的指令操作的计算单元的方法和设备

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202410518889.6A Pending CN118426862A (zh) 2019-06-13 2020-06-12 用于管理用不同大小的指令操作的计算单元的方法和设备

Country Status (3)

Country Link
US (1) US11614949B2 (zh)
CN (2) CN118426862A (zh)
FR (1) FR3097345B1 (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040162964A1 (en) * 2003-02-14 2004-08-19 Ken Ota Processor capable of switching/reconstituting architecture
CN101493762A (zh) * 2008-01-23 2009-07-29 Arm有限公司 多指令集的指令预解码
CN101646999A (zh) * 2007-04-04 2010-02-10 高通股份有限公司 以适当的预解码预载来自可变长度指令集的指令的系统、方法和软件
CN101676863A (zh) * 2008-08-15 2010-03-24 北京北大众志微系统科技有限责任公司 一种双宽度指令系统的性能无损切换方法及其应用系统
US20130007439A1 (en) * 2010-03-17 2013-01-03 Fujitsu Limited Multicore processor system, computer product, and notification method
US20160011869A1 (en) * 2014-07-14 2016-01-14 Imagination Technologies Limited Running a 32-bit operating system on a 64-bit processor
US20160048693A1 (en) * 2014-08-12 2016-02-18 Redwall Technologies, Llc Temporally isolating data accessed by a computing device
CN107408040A (zh) * 2015-02-02 2017-11-28 优创半导体科技有限公司 配置成利用无序执行对可变长度向量进行操作的向量处理器

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5638525A (en) * 1995-02-10 1997-06-10 Intel Corporation Processor capable of executing programs that contain RISC and CISC instructions
US7149878B1 (en) * 2000-10-30 2006-12-12 Mips Technologies, Inc. Changing instruction set architecture mode by comparison of current instruction execution address with boundary address register values
JP4319093B2 (ja) * 2003-06-30 2009-08-26 株式会社リコー 電子装置及びパラメータ更新方法
TWI363298B (en) * 2008-02-29 2012-05-01 Hon Hai Prec Ind Co Ltd Communication device and firmware update method thereof
US8938552B2 (en) * 2010-08-02 2015-01-20 Cleversafe, Inc. Resolving a protocol issue within a dispersed storage network
US20120216281A1 (en) * 2011-02-22 2012-08-23 PCTEL Secure LLC Systems and Methods for Providing a Computing Device Having a Secure Operating System Kernel
US9201652B2 (en) * 2011-05-03 2015-12-01 Qualcomm Incorporated Methods and apparatus for storage and translation of entropy encoded software embedded within a memory hierarchy
US10055227B2 (en) * 2012-02-07 2018-08-21 Qualcomm Incorporated Using the least significant bits of a called function's address to switch processor modes
US10534619B2 (en) * 2016-02-26 2020-01-14 Smart Modular Technologies, Inc. Memory management system with multiple boot devices and method of operation thereof

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040162964A1 (en) * 2003-02-14 2004-08-19 Ken Ota Processor capable of switching/reconstituting architecture
CN101646999A (zh) * 2007-04-04 2010-02-10 高通股份有限公司 以适当的预解码预载来自可变长度指令集的指令的系统、方法和软件
CN101493762A (zh) * 2008-01-23 2009-07-29 Arm有限公司 多指令集的指令预解码
CN101676863A (zh) * 2008-08-15 2010-03-24 北京北大众志微系统科技有限责任公司 一种双宽度指令系统的性能无损切换方法及其应用系统
US20130007439A1 (en) * 2010-03-17 2013-01-03 Fujitsu Limited Multicore processor system, computer product, and notification method
US20160011869A1 (en) * 2014-07-14 2016-01-14 Imagination Technologies Limited Running a 32-bit operating system on a 64-bit processor
US20160048693A1 (en) * 2014-08-12 2016-02-18 Redwall Technologies, Llc Temporally isolating data accessed by a computing device
CN107408040A (zh) * 2015-02-02 2017-11-28 优创半导体科技有限公司 配置成利用无序执行对可变长度向量进行操作的向量处理器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
TENSILICA公司: "通过FLIX指令结构提高可配置处理器计算性能", 电子设计技术, no. 02, pages 78 - 80 *

Also Published As

Publication number Publication date
CN118426862A (zh) 2024-08-02
US20200394047A1 (en) 2020-12-17
FR3097345B1 (fr) 2021-06-25
FR3097345A1 (fr) 2020-12-18
US11614949B2 (en) 2023-03-28
CN112083965B (zh) 2024-05-07

Similar Documents

Publication Publication Date Title
CN109478135B (zh) 计算机系统和用于重新引导计算机系统的方法
KR100508087B1 (ko) 낸드 플래시 메모리를 이용한 부트 시스템 및 그 방법
TWI390410B (zh) 不須執行電力開啟自我測試之操作系統傳送及啟動
EP1343082B1 (en) System boot using nand flash memory and method thereof
US7032106B2 (en) Method and apparatus for booting a microprocessor
US20050283598A1 (en) Method and system for loading processor boot code from serial flash memory
US8296528B2 (en) Methods and systems for microcode patching
TW514829B (en) Computer system including a memory access controller for using non-system memory storage resources during system boot time
US9690572B2 (en) System and method for updating firmware in real-time
US20110055540A1 (en) Pre-Boot Loader for Reducing System Boot Time
KR20070077463A (ko) 컴퓨터 시스템 초기화 방법과 초기화 코드 로딩 방법 및dram 디바이스와 이를 포함하는 내장형 시스템
US20060047938A1 (en) Method and apparatus to initialize CPU
JP2004334486A (ja) ブートコードを用いた起動システム、及び起動方法
US6438683B1 (en) Technique using FIFO memory for booting a programmable microprocessor from a host computer
CN114721493B (zh) 芯片启动方法、计算机设备及可读存储介质
KR20140083530A (ko) 하드웨어를 디버깅하는 부트 쉘을 포함하는 시스템온칩 및 이의 구동 방법
CN112083965B (zh) 用于管理用不同大小的指令操作的计算单元的方法和设备
US6845444B2 (en) Method and apparatus for reducing strapping devices
WO2022199622A1 (zh) 一种电子设备的启动程序的运行方法和电子设备
JPH0855097A (ja) データ処理システム及びそのメモリアクセス方法
US6604195B1 (en) Method and apparatus to use non-volatile read/write memory for bootstrap code and processes
EP3699913B1 (en) Delayed reset for code execution from memory device
GB2304209A (en) Starting up a processor system
CN110941452B (zh) 一种配置方法、bios芯片和电子设备
JPH01293414A (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