CN105474174B - 控制时间密集的指令 - Google Patents

控制时间密集的指令 Download PDF

Info

Publication number
CN105474174B
CN105474174B CN201480045495.8A CN201480045495A CN105474174B CN 105474174 B CN105474174 B CN 105474174B CN 201480045495 A CN201480045495 A CN 201480045495A CN 105474174 B CN105474174 B CN 105474174B
Authority
CN
China
Prior art keywords
time
intensive
instructions
exception
processing apparatus
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
CN201480045495.8A
Other languages
English (en)
Other versions
CN105474174A (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.)
ARM Ltd
Original Assignee
ARM Ltd
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 ARM Ltd filed Critical ARM Ltd
Publication of CN105474174A publication Critical patent/CN105474174A/zh
Application granted granted Critical
Publication of CN105474174B publication Critical patent/CN105474174B/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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • 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/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • 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
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system

Abstract

运行时间密集指令可导致关键事件被延迟响应或完全不回应。信息处理设备包含:处理电路系统60,用于执行包含一个或多个时间密集指令的指令;及异常产生电路系统100,用于针对处理电路系统产生至少一个异常。处理电路系统保持控制值20,该控制值用于指示是否可运行时间密集指令。当遭遇时间密集指令时,若控制值指示不可运行时间密集指令,则第一异常触发处理电路系统遏止对时间密集指令的执行。或者,若控制值指示可运行时间密集指令,则运行时间密集指令。

Description

控制时间密集的指令
技术领域
本发明针对数据处理装置领域。更特定言之,本发明可与数据处理装置中控制时间密集的指令相关。
背景技术
在实时系统中,常常需要在一时段内或在特定时间响应特定事件。为了实现此点,此类系统常常依赖于作为整体的系统的确定性行为。举例而言,可能需要提供在预定间隔或时间处对处理器或另一硬件装置(诸如传感器)存取的软件。
实时系统的一个实例是安全气囊展开系统,该系统被设计为侦测车辆的碰撞且在侦测到此碰撞时展开安全气囊。在此系统中,可能必须在自侦测到碰撞事件的极短时段内展开安全气囊。
然而,若硬件繁忙,则在给定时段内响应特定事件的问题变得复杂。详言之,若处理器正执行耗时指令,则在可实施任何其他工作前存在延迟。例如,设想安全气囊展开系统,若处理器开始执行耗时指令,随后立即发生碰撞事件,则可能需要处理器完成执行耗时指令,之后可展开安全气囊。这可能导致以下情形:已发生碰撞,但在耗时指令完成前安全气囊展开系统将长时间无法操作。
因此,在实时系统中,在不方便时执行耗时指令可能对该系统的总体效能具有明显不利影响,且甚至可能导致系统的完全故障。
处理此类指令的一种方式为,当发生关键事件时单纯终止指令的执行。然而,这将浪费已在该指令上消耗的任何处理器资源,且可能常常需要消耗甚至更多的处理器资源以将处理器的状态恢复到耗时指令开始执行前的样子。另外,一些指令为本质上不可中断或者若中断则可能产生不便的不良影响。
发明内容
根据一方面,提供一种信息处理设备,该信息处理设备包含:处理电路系统,该处理电路系统被配置为执行包含一个或多个时间密集指令的指令;及异常产生电路系统,该异常产生电路系统被配置为针对该处理电路系统产生至少一个异常,其中配置该处理电路系统以保持控制值,该控制值用于指示是否可执行这些时间密集指令;其中该异常产生电路系统被配置为当该控制值处于指示不可执行这些时间密集指令的第一状态时,响应于这些时间密集指令中的一者而产生第一异常以触发处理电路系统遏止对这些时间密集指令中的这一者的执行;及其中该异常产生电路系统被配置为当该控制值处于指示可执行这些时间密集指令的第二状态时,响应于这些时间密集指令中的一者而执行这些时间密集指令中的这一者。
本技术认识到,运行时间密集指令有时可能是不利的,特别是在实时系统中在必须相对迅速响应的关键事件前发生此类指令时。举例而言,若系统本将开始运行时间密集指令且本将随后立即发生关键事件或异常,则在可响应关键事件或异常前可能需要完成时间密集指令。在实时系统中,这可能是不可接受的,因为可能需要在极短时段内响应异常或事件。
根据以上方面,提供控制值用于指示是否可由处理电路系统运行时间密集指令(亦即,是否容许运行时间密集指令)。若将控制值设置为不可运行时间密集指令的状态,则尝试运行时间密集指令将导致由异常产生电路系统产生的第一异常,引发遏止对该时间密集指令的执行。或者,若控制值的状态使得可运行时间密集指令,则继续执行这些指令且不产生第一异常。因此,通过控制控制值的状态,可根据需要容许或不允许时间密集指令。因此,若已知关键事件即将发生或具有高发生概率,则可将控制值设置为不允许在该事件前的时间密集指令。因此,当事件本身发生时,应没有耗时指令发生且可迅速响应该事件。
存在时间密集指令的许多不同实例。在一些实施例中,可认为时间密集指令为需要处理电路系统的多个处理周期来执行的指令。代替此实例或除此实例外,时间密集指令可包含一旦开始则不可中断的指令。
除这两个实例中的任一者外或代替该任一者,时间密集指令可包括以下各项中的至少一者:浮点平方根指令、除法指令、不可中断加载多个指令、不可中断储存多个指令及至少一个预定单指令多数据(SIMD)指令。
浮点平方根指令及整数或浮点除法指令可能是耗时的,单纯是由于这些指令需要大量处理周期完成的本质。不中断这些指令可为较佳,因为否则将需要时间密集操作再次开始。此外,以程序次序在时间密集平方根或除法指令后或并行执行的后来指令可能在完成该指令前复写平方根或除法指令的输入寄存器,使得若中断则很难或甚至不可能重新开始这些指令。举例而言,若将指令中所引用的内存的地址视为装置(Device)类型内存,则可将加载及储存指令标记为不可中断。可将此内存映像至硬件装置,并且对这些内存位置的读取或写入可使得装置以特定方式行动。中断这些指令可导致硬件装置的不正确或不确定的行为。SIMD指令是在相同输入操作数内对多个数据元素并行执行单个处理运算符的指令。至少一些SIMD操作可涉及许多处理器周期且与整数或浮点除法指令一样,若中断则不可能重新开始此类指令。
术语“时间密集指令”的其他适宜实例将对熟习此项技术者显而易见且可代替或除上文所提供的这些实例中的任一者使用这些实例。
处理电路系统可被配置为在第一特权等级下执行第一软件及在比第一特权等级更高的第二特权等级下执行第二软件。即,在比第二软件更低的特权等级下执行第一软件。术语“更高”是指特权的等级,而非与该特权等级关联的任何数值。因此,特权较多的等级可在数字上比特权较少的等级更高或更低。大体而言,“更高”特权软件可具有“更低”特权下的软件不可用的权利。
在这些实施例中的一些实施例中,第二软件可被配置为控制处理电路系统改变该控制值。
异常产生电路系统可被配置为响应于该第一软件的这些时间密集指令中的一者而产生第一异常。亦即,当第一软件尝试运行时间密集指令中的一者时,异常产生电路系统可产生第一异常。可因此藉由控制值来管控第一软件的行为。
因此,以更多特权执行的第二软件可设置控制值,而在更少特权等级下执行的第一软件可受控制值影响。此类实施例适于一组软件由另一件软件管控的系统,诸如虚拟化环境中。
异常产生电路系统可被配置为仅响应于在比该第二特权等级更低的特权等级下执行的软件的时间密集指令的一者而产生第一异常。亦即,将仅针对在比第二特权等级更低的特权等级下执行的软件产生第一异常。换言之,异常产生电路系统被配置为响应于在该第二特权等级下执行的软件的时间密集指令的一者而不产生第一异常。在这些实施例中的一些实施例中,异常产生电路系统被配置为响应于在特权最大等级下执行的软件的这些时间密集指令中的一者而不产生该第一异常。因此,一些软件可总是有权产生时间密集指令。举例而言,超管理器或管控软件可有权总是运行时间密集指令。
第一软件可包含一个或多个客操作系统,并且第二软件可包含超管理器。本技术非常适合于包括超管理器及一个或多个虚拟化客操作系统的环境,因为超管理器能够控制每一客操作系统的行为以确保公平分配资源。举例而言,藉由超管理器设置控制值,可能限制由第一客操作系统所发布的时间密集指令对第二客操作系统的影响。
可响应于一个或多个预定事件(诸如上下文切换)而改变控制值,此举改变了特定时刻在处理电路系统上正在执行哪个软件。举例而言,上下文切换可暂停一客操作系统的处理并继续进行另一客操作系统或超管理器的处理。在此类实施例中,处理电路系统响应上下文切换以将控制值变成第二状态。亦即,响应于上下文切换,处理电路系统改变控制值以使得可运行时间密集指令。在一些情况中,在上下文切换后立即允许时间密集指令是执行此类指令的最适宜时间,因为在已发生上下文切换后如此短暂时间内将不可能开始执行另一操作系统。因此,在发生下一上下文切换前,操作系统具有最多时间可用来实施时间密集指令。
预定事件的另一实例为第二异常,该第二异常可产生于预期事件前的第一预定时段。举例而言,预期事件可为上下文切换并且可在先前上下文切换后的第二预定时段发生第二异常。亦即,在上下文切换发生后的预定时段流逝后,产生第二异常,引发控制值改变状态以使得不可运行时间密集指令。在利用超管理器的实施例中,第二软件(例如,超管理器)可响应于第二异常来控制处理电路系统。上下文切换通常为周期性的。因此,通过在自最后一个上下文切换以来一段流逝时段后且在预期下一上下文切换前遏止时间密集指令,运行时间密集指令将较不可能延迟未来上下文切换,且因此将较不可能影响硬设备上执行的其他软件。
在一些情况中,第一预定时段比第二预定时段更短。详言之,第一预定时段与第二时段的比率可为1:9。换言之,可运行时间密集指令的时段可比不可运行时间密集指令的时段更长,不可运行时间密集指令的时段处于发生后续上下文切换前不久。此特征的优势在于可大体上容许时间密集指令(90%的时间),此举允许数据处理装置正常操作。仅在一短时段遏止时间密集指令。
响应于第二异常,处理电路系统可被配置为将控制值变成指示不可执行这些时间密集指令的第一状态。以此方式,在为预期事件作准备时,不允许时间密集指令,因此使得系统能够更迅速地响应预期事件,而非需要运行时间密集指令。
在一些实施例中,该处理电路系统被配置为响应于第一异常而切换执行第二软件。存在使第二软件可对所产生的第一异常作出反应的各种方式,下文将描述这些方式的一些实例。熟习此项技术者将了解,这些实例并非限制性。此外,可以任何方式适当组合这些实例。
第二软件可被配置为控制该处理电路系统以改变该多个第一软件中的活跃者。亦即,响应于该第一异常,第二软件改变该多个第一软件中的活跃者。举例而言,在通常将允许即将到来的上下文切换前,可提前切换不同的客操作系统。因此,并未浪费处理电路系统的处理周期且可根据切换到的客操作系统消耗这些处理周期。
响应于该第一异常,可配置该处理电路系统以在发生后续上下文切换前不执行该多个第一软件。在此情形中,在接收另一上下文切换前,将不执行该多个第一软件中的任一者。通过不改变响应于所产生的第一异常而执行第一软件中的何者,来保持处理设备的确定性本质。亦即,将不改变预期执行特定第一软件的时间。然而,不容许继续执行发布时间密集指令的第一软件。一旦发生上下文切换,可改变该多个第一软件中的活跃者,且当处理切换回原始第一软件时,可容许该多个第一软件中的活跃者正常执行指令并且稍后将执行耗时指令。
在一些情况中,响应于该第一异常,配置该处理电路系统以继续执行该多个第一软件中的活跃者,而不执行这些时间密集指令的这一者。亦即,在这些情况中,该第一软件中的活跃者保持活跃且容许继续执行。然而,引发产生第一异常的时间密集指令并未被执行且可能需要在稍后再发布。
根据第二方面,提供一种用于信息处理设备的机器实施方法,该方法包含以下步骤:执行包含一个或多个时间密集指令的一个或多个指令;保持控制值,该控制值用于指示是否可执行这些时间密集指令;当该控制值指示不可执行这些时间密集指令时,响应于这些时间密集指令中的一者,产生第一异常以遏止对这些时间密集指令中的这一者的执行;以及当该控制值指示可执行这些时间密集指令时,响应于这些时间密集指令中的一者,执行这些时间密集指令中的这一者。
根据第三方面,提供一种信息处理设备,该信息处理设备包含:处理装置,该处理装置用于执行包含一个或多个时间密集指令的指令;以及异常产生装置,该异常产生装置用于针对该处理电路系统产生至少一个异常,其中该处理装置被配置为保持控制值,该控制值用于指示是否可执行这些时间密集指令;其中该异常产生装置被配置为当该控制值处于指示不可执行这些时间密集指令的第一状态时,响应于这些时间密集指令中的一者而产生第一异常以触发处理装置遏止对这些时间密集指令中的这一者的执行;以及其中该异常产生装置被配置为当该控制值处于指示可执行这些时间密集指令的第二状态时,响应于这些时间密集指令中的一者而执行这些时间密集指令中的这一者。
附图说明
参考随附图式中所图示的本发明的实施例,将仅以举例的方式进一步描述本发明,在这些图式中:
图1示意性图示由可应用本技术的信息处理设备执行的软件的层级表示;
图2示意性图示根据一实施例的信息处理设备;
图3图示基于控制值的状态来允许/禁止运行时间密集指令的实例;
图4A示意性图示根据一实施例对第一异常的响应;
图4B示意性图示根据第二实施例对第一异常的响应;
图4C示意性图示根据第三实施例对第一异常的响应;
图5示意性图示根据一实施例响应时间密集指令的方法。
具体实施方式
图1示意性图示可利用本文所描述的技术在虚拟化系统中执行的软件。
软件是层级式且包含在异常等级EL2(亦称为特权等级或执行等级)下执行的超管理器10,该超管理器管控在异常等级EL1下执行的众多客操作系统。异常等级指示给定在该异常等级上执行软件的特权程度。在此实例中,超管理器在比客操作系统更高的异常等级下执行,且因此超管理器具有比客操作系统更多的特权。此特定实例展示三个异常等级(EL2、EL1及EL0)。然而,将了解,本文所描述的技术适用于包含任何复数个数目的异常等级的系统。
客操作系统包括实时操作系统30及富操作系统50。实时操作系统通常被设计为迅速响应侦测到的事件,而非继续执行用户所请求的任务。许多事件可为关键的,指示必须在一定时段内响应这些事件以避免系统的毁灭性故障。富操作系统亦可响应事件,但通常不由事件驱动且通常完全不处理关键事件。富操作系统的实例包括家庭环境中所熟知的系统,诸如“windows”及“linux”系统。举例而言,实时操作系统可控制汽车中的安全气囊或制动器,而富操作系统可控制汽车立体声。
每一操作系统30、50可管控一个或多个实时或非实时任务40。甚至在更低的异常等级EL0下操作这些任务。
在此实施例中,超管理器在多个客操作系统之间共享资源。亦即,在任意一个时间处,仅活跃执行客操作系统中的一者且其他操作系统必须等待。由超管理器控制选择作用中操作系统及决定哪个操作系统应将被接下来执行。
因此,将了解,其他客操作系统的行为部分地决定每一客操作系统的执行。举例而言,若富操作系统50的一者开始执行特别耗时且因此不可中断的任务,则超管理器10可不允许实时操作系统30共享处理电路系统,直至耗时指令已执行完成。因此,若实时操作系统正等待响应关键事件,则必须等待。
在图1所示的实施例中,超管理器10设置控制值20,该控制值控制是否容许客操作系统30、50或由这些客操作系统管控的任务40中的一者运行时间密集指令,此控制可防止实时操作系统30响应实时关键事件。因此,通过改变控制值的状态,可能禁止或遏止对时间密集指令的执行以使得实时关键事件能够被立即处置。控制值20可形成内存70、寄存器90、处理电路系统60的一部分或可为完全独立装置。
图2示意性图示用于实施本技术的信息处理设备。在此实施例中,提供处理电路系统60用于执行一个或多个指令。一个或多个指令可包括时间密集的指令。在此上下文中,时间密集指令可为需要处理电路系统60的多个频率周期来执行的指令。可将一个或多个不同类型指令预定为耗时指令。
处理电路系统60对时间密集指令的尝试执行的响应取决于控制值20的状态。举例而言,若将控制值20设置为值0或假,则此指示允许时间密集指令。反之,若将控制值设置为值1或真,则此指示不允许时间密集指令。熟习此项技术者将了解,这些值当然可为相反或其他表示可为可能的。举例而言,控制值可表示允许运行时间密集指令的条件的集合。
当控制值20指示允许时间密集指令时,响应于处理电路系统60所遭遇的时间密集指令(例如,在发布状态或运行时间),处理电路系统60将执行该时间密集指令。或者,当控制值20指示不允许时间密集指令时,响应于所遭遇的时间密集指令,异常产生电路系统100将产生第一异常(或中断)。第一异常引发处理电路系统60切换离开作用中操作系统并且反而执行超管理器10。超管理器10通过遏止时间密集指令响应,使得不运行时间密集指令。在不运行时间密集指令的情况下,超管理器可随后采取进一步动作以允许向前行进。
异常产生电路系统100可产生除第一异常外的其他异常。可能发布的另一异常的一个实例是上下文切换异常,此异常引发处理电路系统在执行不同的操作系统之间切换。可基于周期计数器110的值定期产生此异常。
在图2所示的实施例中,异常产生电路系统100产生第二异常以控制处理电路系统60转换控制值20。因此,可改变时间密集指令的执行。使用周期计数器110周期性发布此第二异常。因此,可使得处理电路系统60定期允许或不允许时间密集指令被发布或使得该处理电路系统在给定时段在两个状态之间交替。
信息处理设备进一步包括经由内存保护单元(memory protection unit;MPU)80存取的内存70,该内存保护单元限制对内存70的存取。信息处理设备亦包含寄存器90的集合。在其他实施例中,可在适当位置或除MPU外提供内存管控单元(memory managementunit;MMU)。
时间密集指令可能需要处理电路系统60的多个处理周期以便执行。然而,在一些实施例中,时间密集指令为预界定集合。举例而言,预界定集合可包括浮点平方根指令及除法指令。预界定集合亦可包括不可中断加载多个指令,在这些指令中将储存于内存70中的多个数据值转移至寄存器90。类似地,预界定列表可包括不可中断储存多个指令,在这些指令中将储存于寄存器90中的多个数据值转移至内存70。MPU 80可指示特定载入多个或储存多个指令为不可中断。举例而言,可通过相关于内存70的内存地址的特定范围来设置MPU80中的特定位从而发生此情况。当处理装置类型内存时可实施此操作,其中通过对直接映像至硬件装置的内存中的部分读取及写入来控制该硬件装置。此类指令必须为不可中断,以便确保不出现仅数据值的子集合被储存至内存或自内存读取的情形,该情形可导致硬件装置以不正确或非确定性方式行动。
指令的预定列表亦可包括至少一个预定单指令多数据(single instructionmultiple data;SIMD),可使用此类指令以便通过仅发布单个指令来对多段数据并行执行众多操作。举例而言,单个(SIMD)指令可用于执行矩阵乘法。
图3示意性图示使用控制值来控制是否可运行时间密集指令。
在时间t0处,将控制值设置为0,指示允许时间密集指令。
在时间t1处,发布时间密集指令。由于在时间t1处将控制值设置为0,指示允许时间密集指令,容许指令进行且因此由处理电路系统60执行该指令。
在时间t2处,将控制值设置为1,指示不允许时间密集指令。由于接近时间t4处的预期实时关键事件,可在时间t2处不允许时间密集指令。通过不允许非常接近于预期实时关键事件的时间密集指令,可防止由处置时间密集指令所造成的对实时关键事件响应延迟的情形。
在时间t3处,发布进一步时间密集指令。由于在时间t3处控制值为1,指示不允许时间密集指令,将不容许运行时间密集指令并且反而将由异常产生电路系统100产生第一异常以引发处理电路系统60遏止时间密集指令。
最后,在时间t4处,发生预期实时关键事件。由于在发生实时关键事件前已不允许时间密集指令,所以在时间t4处将不可能正在处理任何时间密集指令。因此,可能几乎立即回应实时关键事件,而具有极少延迟。
图4A图标第一实例,其中当控制值20指示不容许此类指令时,处理电路系统60响应由异常产生电路系统100响应于所发布的时间密集指令而产生的第一异常。如图4A所示,处理电路系统60被配置为在执行三个不同操作系统OS1、OS2及OS3之间循环。执行发生在不同时间片130,其中每一时间片专用于特定客操作系统。自一操作系统至另一操作系统(亦即,自一时间片至另一时间片)的切换称为上下文切换。在每一上下文切换发生前,产生第二异常(在图4A中由虚线指示)。第二异常引发处理电路系统60改变储存于控制值20内的值以使得不容许时间密集指令。在已发生上下文切换后,设置控制值20以再次允许时间密集指令。因此,从图4A可看出,可将每一时间片130视为容许时间密集指令的第一时段140及不容许时间密集指令的第二时段120。图4A图示第二时段120比第一时段140明显更短。举例而言,第一时段140与第二时段120的比率可为9:1。因此,大体上容许时间密集指令,但不容许随后立即发生上下文切换的时间密集指令。因此,在处置每一上下文切换上存在极少延迟,因为在可发生上下文切换前将不可能需要完成任何时间密集指令。因此,在常规排程下执行三个操作系统OS1、OS2及OS3且容许在确定性时间处执行这些操作系统,由于上下文切换被推迟,因此变化极少。当尝试运行时间密集指令时,当控制值20指示不容许此类指令时,异常产生电路系统100将产生第一异常,引发处理器60执行超管理器。超管理器可随后响应若干方式之一,如图4A、图4B及图4C所示。
在图4A中,处理电路系统60通过遏止对时间密集指令的执行及不执行操作系统OS1、OS2或OS3中的任一者来回应第一异常。因此,对于遭遇时间密集指令与下一上下文切换之间的时段150,可执行形成超管理器的一部分的软件,但不可执行客操作系统。
图4B与图4A类似,但图4B图示对时间t3处发生第一异常的不同回应。在此实例中,仍遏止时间密集指令,但承接本将立刻发生的预期上下文切换操作,而非不执行操作系统OS1、OS2及OS3中的任一者。因此,容许提前执行操作系统OS1。在此实施例中,未浪费处理资源。然而,系统的确定性本质改变,因为比通常原本预期的更早执行下一操作系统。因此,如图4A所示等待下一上下文切换可更为简单,而非改变上下文切换时序。
图4C与图4A及图4B类似。仍遏止时间密集指令。然而,响应于在时间t3处发生第一异常,继续执行操作系统OS3。举例而言,若时间密集指令发生作为OS3下的第一任务的一部分,OS3能够继续执行不同的第二任务,而非第一任务。超管理器随后实施某一动作以免运行时间密集指令。举例而言,超管理器可引发客操作系统发布自身上下文切换,以便切换离开引发了运行时间密集指令的任务,反而执行不同的任务。或者,超管理器可通过发布错误或异常以指示当前不可执行所请求的操作来响应时间密集指令。
图5示意性图示根据一实施例响应时间密集指令的方法。
在步骤S200处,撷取下一指令。在步骤S210处,处理电路系统60决定所撷取指令是否为时间密集指令。若指令不为时间密集指令,则在步骤S220处,执行指令且方法返回至步骤S200。然而,若在步骤S210处,决定指令为时间密集指令,则在步骤S230处,检查控制值是否指示允许时间密集指令。若决定控制值指示不允许时间密集指令,则在步骤S240处,产生第一异常,及在步骤S250处,遏止时间密集指令。随后方法返回至步骤S200。然而,若在步骤S230处,决定容许时间密集指令,则在步骤S260处运行时间密集指令且方法返回至步骤S200。
尽管本文已描述特定实施例,但将了解,本发明并不受限于此且可在本发明的范畴内对这些实施例实施许多修改及添加。举例而言,可在不脱离本发明的范畴的情况下由独立权力要求的特征产生以下从属权利要求的特征的各种组合。

Claims (23)

1.一种信息处理设备,该信息处理设备包括:
处理电路系统,该处理电路系统被配置为执行包括一个或多个时间密集指令的指令;以及
异常产生电路系统,该异常产生电路系统被配置为针对该处理电路系统产生至少一个异常,
其中该处理电路系统被配置为保持控制值,该控制值用于指示是否可执行所述时间密集指令;
其中该异常产生电路系统被配置为当该控制值处于指示不可执行所述时间密集指令的第一状态时,响应于所述时间密集指令中的一者而产生第一异常以触发该处理电路系统遏止对所述时间密集指令中的这一者的执行;
其中该异常产生电路系统被配置为当该控制值处于指示可执行所述时间密集指令的第二状态时,响应于所述时间密集指令的一者而执行所述时间密集指令的这一者;并且
其中该处理电路系统被配置为响应于一个或多个预定非确定性事件来改变该控制值。
2.如权利要求1所述的信息处理设备,
其中所述时间密集指令包括需要该处理电路系统的多个处理周期来执行的指令。
3.如任一前述权利要求所述的信息处理设备,
其中所述时间密集指令包括不可中断的指令。
4.如权利要求1所述的信息处理设备,
其中所述时间密集指令包括以下各项中的至少一者:浮点平方根指令、除法指令、不可中断加载多个指令、不可中断储存多个指令及至少一个预定单指令多数据(SIMD)指令。
5.如权利要求1所述的信息处理设备,
其中该处理电路系统被配置为在第一特权等级下执行第一软件及在比该第一特权等级更高的第二特权等级下执行第二软件。
6.如权利要求5所述的信息处理设备,
其中该第二软件被配置为控制该处理电路系统以改变该控制值。
7.如权利要求5所述的信息处理设备,
该异常产生电路系统被配置为响应于该第一软件的时间密集指令中的一者而产生该第一异常。
8.如权利要求5所述的信息处理设备,其中该异常产生电路系统被配置为仅在响应于比该第二特权等级更低的特权等级下执行的软件的时间密集指令的一者而产生该第一异常。
9.如权利要求5到8中的任一项所述的信息处理设备,
其中该第一软件包括一个或多个客操作系统;以及
其中该第二软件包括超管理器。
10.如权利要求1所述的信息处理设备,
其中该一个或多个预定非确定性事件包括上下文切换。
11.如权利要求10所述的信息处理设备,
其中响应于该上下文切换,该处理电路系统被配置为将该控制值变成该第二状态。
12.如权利要求10所述的信息处理设备,
其中该一个或多个预定非确定性事件包括第二异常;以及
其中该异常产生电路系统被配置为在预期事件前的第一预定时段产生该第二异常。
13.如权利要求12所述的信息处理设备,
其中该预期事件是上下文切换并且在先前的上下文切换后的第二预定时段发生该第二异常。
14.如权利要求13所述的信息处理设备,
其中该第一预定时段比该第二预定时段更短。
15.如权利要求14所述的信息处理设备,
其中该第一预定时段与该第二预定时段的比率为1:9。
16.如权利要求12到15中的任一项所述的信息处理设备,
其中响应于该第二异常,该处理电路系统被配置为将该控制值变成该第一状态。
17.如权利要求5所述的信息处理设备,其中该处理电路系统被配置为响应于该第一异常而切换为执行该第二软件。
18.如权利要求17所述的信息处理设备,其中该处理电路系统被配置为在该第一特权等级下执行多个第一软件中的一者。
19.如权利要求18所述的信息处理设备,
其中响应于该第一异常,该第二软件被配置为控制该处理电路系统以改变所述多个第一软件中的活跃者。
20.如权利要求18所述的信息处理设备,
其中响应于该第一异常,该处理电路系统被配置为在后续的上下文切换前不执行所述多个第一软件。
21.如权利要求18到20中的任一项所述的信息处理设备,
其中响应于该第一异常,该处理电路系统被配置为继续执行所述多个第一软件中的活跃者,而不执行所述时间密集指令的这一者。
22.一种用于信息处理设备的机器实施方法,该方法包括以下步骤:
执行包括一个或多个时间密集指令的一个或多个指令;
保持控制值,该控制值用于指示是否可执行所述时间密集指令;
当该控制值指示不可执行所述时间密集指令时,响应于所述时间密集指令中的一者,产生第一异常以遏止对所述时间密集指令中的这一者的执行;当该控制值指示可执行所述时间密集指令时,响应于所述时间密集指令中的一者,执行所述时间密集指令中的这一者;并且
响应于一个或多个预定非确定性事件来改变该控制值。
23.一种信息处理设备,该信息处理设备包括:
处理装置,该处理装置用于执行包括一个或多个时间密集指令的指令;以及
异常产生装置,该异常产生装置用于针对该处理装置产生至少一个异常,
其中该处理装置被配置为保持控制值,该控制值用于指示是否可执行所述时间密集指令;
其中该异常产生装置被配置为当该控制值处于指示不可执行所述时间密集指令的第一状态时,响应于所述时间密集指令中的一者而产生第一异常以触发该处理装置遏止对所述时间密集指令中的这一者的执行;
其中该异常产生装置被配置为当该控制值处于指示可执行所述时间密集指令的第二状态时,响应于所述时间密集指令中的一者而执行所述时间密集指令中的这一者;并且
其中所述处理装置被配置为响应于一个或多个预定非确定性事件来改变该控制值。
CN201480045495.8A 2013-08-23 2014-07-07 控制时间密集的指令 Active CN105474174B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1315109.7 2013-08-23
GB1315109.7A GB2517494B (en) 2013-08-23 2013-08-23 Handling time intensive instructions
PCT/GB2014/052053 WO2015025127A1 (en) 2013-08-23 2014-07-07 Handling time intensive instructions

Publications (2)

Publication Number Publication Date
CN105474174A CN105474174A (zh) 2016-04-06
CN105474174B true CN105474174B (zh) 2020-02-28

Family

ID=49355839

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480045495.8A Active CN105474174B (zh) 2013-08-23 2014-07-07 控制时间密集的指令

Country Status (10)

Country Link
US (1) US10963250B2 (zh)
EP (1) EP3036629B1 (zh)
JP (1) JP6427575B2 (zh)
KR (1) KR102235142B1 (zh)
CN (1) CN105474174B (zh)
BR (1) BR112016002997B1 (zh)
GB (1) GB2517494B (zh)
IL (1) IL244199B (zh)
TW (1) TWI654561B (zh)
WO (1) WO2015025127A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2517493A (en) * 2013-08-23 2015-02-25 Advanced Risc Mach Ltd Handling access attributes for data accesses
US9367322B1 (en) 2015-07-27 2016-06-14 International Business Machines Corporation Age based fast instruction issue
US11029985B2 (en) * 2018-01-19 2021-06-08 Ge Aviation Systems Llc Processor virtualization in unmanned vehicles
US10942509B2 (en) 2018-01-19 2021-03-09 Ge Aviation Systems Llc Heterogeneous processing in unmanned vehicles

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101826000A (zh) * 2010-01-29 2010-09-08 北京龙芯中科技术服务中心有限公司 流水线微处理器的中断响应确定方法、装置及微处理器核
CN101866281A (zh) * 2010-06-13 2010-10-20 清华大学 一种多周期指令执行方法和装置
US7966480B2 (en) * 2001-06-01 2011-06-21 Microchip Technology Incorporated Register pointer trap to prevent errors due to an invalid pointer value in a register

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6058410A (en) 1996-12-02 2000-05-02 Intel Corporation Method and apparatus for selecting a rounding mode for a numeric operation
US6427202B1 (en) * 1999-05-04 2002-07-30 Microchip Technology Incorporated Microcontroller with configurable instruction set
US6493741B1 (en) * 1999-10-01 2002-12-10 Compaq Information Technologies Group, L.P. Method and apparatus to quiesce a portion of a simultaneous multithreaded central processing unit
US7181600B1 (en) * 2001-08-02 2007-02-20 Mips Technologies, Inc. Read-only access to CPO registers
US7779239B2 (en) * 2004-07-28 2010-08-17 Intel Corporation User opt-in processor feature control capability
US7590823B1 (en) * 2004-08-06 2009-09-15 Xilinx, Inc. Method and system for handling an instruction not supported in a coprocessor formed using configurable logic
JP5010164B2 (ja) * 2006-03-31 2012-08-29 株式会社日立製作所 サーバ装置及び仮想計算機の制御プログラム
US7797681B2 (en) 2006-05-11 2010-09-14 Arm Limited Stack memory selection upon exception in a data processing system
US20080072019A1 (en) * 2006-09-19 2008-03-20 Avinash Sodani Technique to clear bogus instructions from a processor pipeline
US20090037918A1 (en) 2007-07-31 2009-02-05 Advanced Micro Devices, Inc. Thread sequencing for multi-threaded processor with instruction cache
US8397235B2 (en) 2008-10-07 2013-03-12 Futurewei Technologies, Inc. User tolerance based scheduling method for aperiodic real-time tasks
JP5353227B2 (ja) * 2008-12-24 2013-11-27 富士通株式会社 性能測定プログラム及び性能測定方法並びに性能測定機能を有する情報処理装置。
US8429648B2 (en) * 2009-05-28 2013-04-23 Red Hat, Inc. Method and apparatus to service a software generated trap received by a virtual machine monitor
JP4965638B2 (ja) 2009-12-25 2012-07-04 インターナショナル・ビジネス・マシーンズ・コーポレーション タスクの切り換えを制御するシステムおよび方法
GB2482701C (en) * 2010-08-11 2018-12-26 Advanced Risc Mach Ltd Illegal mode change handling
GB2489000B (en) 2011-03-14 2019-09-11 Advanced Risc Mach Ltd Diagnosing code using single step execution
US9146767B2 (en) * 2012-06-19 2015-09-29 Raytheon Company Secure cloud hypervisor monitor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7966480B2 (en) * 2001-06-01 2011-06-21 Microchip Technology Incorporated Register pointer trap to prevent errors due to an invalid pointer value in a register
CN101826000A (zh) * 2010-01-29 2010-09-08 北京龙芯中科技术服务中心有限公司 流水线微处理器的中断响应确定方法、装置及微处理器核
CN101866281A (zh) * 2010-06-13 2010-10-20 清华大学 一种多周期指令执行方法和装置

Also Published As

Publication number Publication date
GB201315109D0 (en) 2013-10-09
GB2517494A (en) 2015-02-25
JP6427575B2 (ja) 2018-11-21
BR112016002997A2 (zh) 2017-08-01
CN105474174A (zh) 2016-04-06
JP2016531363A (ja) 2016-10-06
US10963250B2 (en) 2021-03-30
TW201508636A (zh) 2015-03-01
WO2015025127A1 (en) 2015-02-26
EP3036629A1 (en) 2016-06-29
BR112016002997B1 (pt) 2022-05-31
IL244199A0 (en) 2016-04-21
GB2517494B (en) 2021-02-24
EP3036629B1 (en) 2021-06-09
IL244199B (en) 2019-06-30
KR20160045699A (ko) 2016-04-27
US20160202977A1 (en) 2016-07-14
KR102235142B1 (ko) 2021-04-02
TWI654561B (zh) 2019-03-21

Similar Documents

Publication Publication Date Title
KR100726317B1 (ko) 게스트 소프트웨어의 특권 레벨에 기초한 가상 머신모니터로의 전이
JP2011103132A (ja) Os隔離シーケンサー上のユーザーレベルのマルチスレッド化をエミュレートする機構
US9311138B2 (en) System management interrupt handling for multi-core processors
CN105474174B (zh) 控制时间密集的指令
US11099884B2 (en) Dynamic control of halt polling based on receiving a monitoring instruction executed by a guest
US20210389966A1 (en) Micro kernel based extensible hypervisor and embedded system
US9606825B2 (en) Memory monitor emulation for virtual machines
CN111324432A (zh) 处理器调度方法、装置、服务器及存储介质
CN108241522B (zh) 虚拟化环境中的睡眠状态切换方法、装置及电子设备
US20160011895A1 (en) Virtual machine context management
CN115220864A (zh) 虚拟模式执行管理器
KR100843134B1 (ko) 인터럽트 금지구간 처리 장치 및 방법과 페이지 고정 장치및 방법
KR20190077235A (ko) 반도체 장치
US11726811B2 (en) Parallel context switching for interrupt handling
US20240086219A1 (en) Transmitting interrupts from a virtual machine (vm) to a destination processing unit without triggering a vm exit
US20230221984A1 (en) Information processing device, vehicle, information processing method, and computer-readable storage medium
JP7257407B2 (ja) 外部例外処理
US20230138145A1 (en) Information processing device, vehicle, information processing method, and storage medium
JP2008225710A (ja) コンピュータシステム及び該システムで用いられるプロセス切替え方法
JP2008077388A (ja) マルチプロセッサ制御システム、方法、およびプログラム
WO2013057769A1 (ja) 情報処理装置、情報処理装置の制御方法および制御プログラム
JP2015064638A (ja) コンピュータ装置、割り込み制御方法およびコンピュータプログラム

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