上下文保存制造技术

技术编号:2879918 阅读:222 留言:0更新日期:2012-04-11 18:40
公开了可在第一执行模式(诸如标量模式)和第二处执行模式(诸如VLIW模式)之间切换的一种处理器。该处理器当处于第一执行模式时具有第一处理器上下文,当处于第二执行模式时具有不同于第一处理器上下文的第二处理器上下文。当处理器试图从一个执行模式改变到另一执行模式时,处理器产生一异常。当处理器切换到第一执行模式的执行线程时,或者当处理器切换到原来是第二执行模式的最后线程的执行线程时,只保存第一处理器上下文。该处理器可这样配置,使得在任何一时间可能处于第二执行模式的线程数小于任何一时间在处理器上可能活动的线程总数。(*该技术在2022年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及处理器,特别是可在两个或多个不同执行模式,例如标量模式和超长指令字(VLIW)模式之间切换的处理器。为了满足不同处理任务的需要,已经提出提供可在两个或多个不同执行模式之间切换的处理器。这种两个或多个执行模式可以具有不同的指令集,它们可能是考虑到不同类型的处理任务而设计的。例如,一个指令集可能设计为如通常处理器那样用于顺序执行,而另一指令集可能设计为允许数个指令被并行执行。这样,处理器一般具有至少是第一指令集被支持的第一执行模式,以及至少第二指令集被支持的第二模式。这样的处理器一般通过执行一特定的指令或指令组从一个执行模式转移到另一模式。现代处理器通常设计为支持多任务,即它们允许执行的几个线程在用户看来似乎是在同时被处理。这通常是在操作系统控制下在不同线程之间快速切换处理器的资源而实现的,以造成线程在同时处理的假象。这种切换在此称为上下文切换。只要发生上下文切换,处理器的寄存器的内容,标志等(称为处理器上下文)必须返回当新的线程上次被执行的时的状态。这是通过保存当前处理器的上下文,即将其保存在存储器中,并通过对新的线程恢复处理器的上下文,即从存储器寻回该上下文而作到的。在已知的处理器中,当发生上下文切换时,整个处理器的上下文被保存和恢复,因为操作系统并不知道处理器上下文的哪部分被离去的线程使用,而哪部分将由来到的线程使用。能够在两个或多个不同执行模式之间切换的处理器中,不同模式中处理器上下文的大小可能不同。其结果可能是,当发生上下文切换时,处理器上下文的一部分不必要地被保存和存储。例如,在能够支持并行处理的处理器中,处理器的上下文可能很大,因而在每一上下文切换时可能需要保存和恢复大量的数据。即使处理器并不总是工作在并行处理模式,并行处理模式的处理器上下文在每一上下文切换时仍将要被保存和恢复。这可能会不情愿地消耗大量的处理器时间,从而降低了任务能够被处理的比率。本专利技术试图要克服以上问题。根据本专利技术的第一方面,提供了一种在第一执行模式和第二执行模式之间可切换的处理器,该处理器在处于第一执行模式时具有第一处理器上下文,并在处于第二执行模式时,具有不同于第一处理器上下文的第二处理器上下文,其中该处理器配置为在处理器试图从一个执行模式改变为另一执行模式时将产生一个异常。当处理器试图从一个执行模式改变到其它执行模式时,通过产生一个异常,处理器的操作系统能够保持对各执行模式正在被使用时的跟踪。这能够允许操作系统进行控制使得处理器上下文的哪些部分(包括处理器中存储单元的内容)在哪些时间被保存。当处理器试图从第一执行模式改变到第二执行模式时,或当处理器试图从第二执行模式改变到第一执行模式时,可以产生异常,或者在两种情形下都可产生异常。例如,第二处理器上下文可能大于第一处理器上下文,并当处理器试图从第一执行模式改变到第二执行模式时,可能产生异常。这可以允许第二处理器上下文只有在绝对必要时才被保存,这可以改进整个系统的性能。在以上情形下,处理器可以被配置使得当这种异常已经产生时,保存第二处理器上下文,或者保存第二处理器上下文不同于第一处理器上下文的部分。这可以避免在每一上下文切换时必须保存第二处理器上下文。取决于实现方式,当这种异常产生时第二处理器上下文可以被自动保存,或者可以确定在该阶段是否必须保存第二处理器上下文。例如,如果当前线程已是在第二执行模式中的最后的线程,那么可能不必保存第二处理器上下文。在一定的环境下,例如两个或多个线程都处于第二执行模式中,当发生上下文切换时,则可能必须保存第二处理器上下文。例如,如果处理器随后切换到第二执行模式中的一个线程,且不是第二执行模式中最后的线程,则在该阶段可能必须保存第二处理器上下文。这样,处理器可以配置使得基于时间共享而执行多个线程,且处理器可被配置使得,当处理器切换到第一执行模式中的线程时,或者当处理器切换到原来是第二执行模式中的最后线程的线程时,只保存第一处理器的上下文。这时处理器可以被配置为使得,当处理器后来要进入第二执行模式以执行不同于第二执行模式中上一个线程的一个线程时,第二处理器上下文,或者第二处理器上下文不同于第一处理器上下文的部分被保存。为了限制第二处理器上下文被保存和恢复的次数,可以限制可能在第二执行模式中的线程数。这样,处理器可以配置为使得基于时间共享执行多个线程,且在任何一时间可能处于第二执行模式中的线程数可能小于任何一时间处理器上活动的线程总数。这可以改进总的系统性能。为了实现以上技术,处理器可以这样配置,使得当已经产生异常时,进行检验以判断引起异常的线程是否被允许进入第二执行模式。例如,只有一定的预定的线程可被允许在第二执行模式中执行,且这种检验可以包括判断引起异常的线程是否被阻挡在第二执行模式之外。在另一例子中,处理器操作系统在任何一时间只允许有限数目的线程处于第二执行模式。这样,检验可以包括判断预定数目的其它线程是否已经处于第二执行模式。该预定数目可以大于或等于一。如果多于预定数目的线程已经处于第二执行模式,则处理器可以被配置为防止引起异常的线程进入第二执行模式,例如,通过终止该线程,或通过在第一执行模式中继续该线程的执行,或通过使该线程的执行暂停直到少于预定数目的其它线程处于第二执行模式。这样,处理器可以这样配置,使得如果预定数目的其它线程已经处于第二执行模式,则引起异常的线程的执行被暂停直到处于第二执行模式的其它线程的数目小于预定数目。当一个线程试图从第二执行模式改变为第一执行模式时,可能产生异常,于是知道(例如通过操作系统)何时线程已经停止在第二执行模式中执行。处理器最好配置为使得当处于第一执行模式时执行第一指令集,并当处于第二执行模式时执行第二指令集。第二指令集可以能够比第一指令集访问处理器中更大数目的存储单元(诸如寄存器)。处理器最好能够在管理模式和用户模式之间切换,与管理模式相比用户模式具有对处理器资源受限制的访问,并当所述异常产生时,处理器从用户模式转移到管理模式。这时可以提供在管理模式下执行的异常处理程序部分以处理异常。异常处理程序部分可以是操作系统的一部分。处理器可以包括至少一个执行单元和多个存储单元,且第一处理器上下文可以包括在第一执行模式中可访问的存储单元的内容,且第二处理器上下文可以包括执行的第二模式中可访问的存储单元的内容。在两个处理器上下文之间可以有交叉;例如,第二处理器上下文可以包含某些或全部第一处理器上下文。处理器可以包括多个计算单元用于并行执行指令,每一计算单元具有至少一个执行单元和执行单元可访问的至少一个存储单元。在第一执行模式下第一数目的计算单元可以执行指令,并在第二执行模式下第二数目的计算单元可以执行指令。这第一和第二数目可以彼此不同;例如,第一数目可能至少是一,而第二数目可能大于第一数目。另外,第一和第二数目可以相同,且第一执行模式下可访问的存储单元数目可以不同于第二执行模式下可访问的存储单元数目。在一个例子中,第一执行模式是标量模式,第二执行模式是并行模式,诸如VLIW模式。在另一例子中,第一和第二执行模式都是标量模式,或都是并行模式,且在两种模式下可访问不同数目的处理器存储单元。两个执行模式可以具有交叉功能;例如,一个执行模式的指令集可能包含其它执行模式的指令集的某些或本文档来自技高网...

【技术保护点】
一种在第一执行模式和第二执行模式之间可切换的处理器,该处理器在处于第一执行模式时具有第一处理器上下文,并在处于第二执行模式时,具有不同于第一处理器上下文的第二处理器上下文,其中该处理器配置为在处理器试图从一个执行模式改变为另一执行模式时将产生一个异常。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:罗伯特A惠顿
申请(专利权)人:斯罗扬有限公司
类型:发明
国别省市:GB[英国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1