【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及维持处理器的堆栈数据结构。
技术介绍
常规处理器维持包含若干控制指令的堆栈数据结构(“堆栈”)。堆栈通常位于处理器的核心内。在处理器核心内执行的线程可对堆栈执行两个基本操作。控制单元可将控制指令“推入”到堆栈上或从堆栈“弹出”控制指令。推入操作向堆栈的顶部添加控制指令,从而引起先前控制指令被沿着堆栈向下推动。弹出操作移除且返回堆栈的当前顶部控制指令,从而引起先前控制指令沿着堆栈向上移动一个位置。因此,处理器核心的堆栈根据后进先出(LIFO)方案而动作。由于处理器核心内存储器的有限大小,因此堆栈非常小。堆栈的小尺寸限制了可利用的嵌套控制指令的数目。将太多控制指令推入到堆栈上导致堆栈溢出,其可引起线程中的一者或一者以上故障或崩溃。
技术实现思路
本专利技术大体上是针对用于控制堆栈溢出的技术。本文描述的技术利用位于处理器核心外部的共用高速缓冲存储器或存储器的一部分作为堆栈扩展。处理器核心在处理器核心中的存储器内维持堆栈。处理器核心在处理器核心堆栈超过例如阈值条目数目的阈值大小时将堆栈内容的至少一部分转移到驻存在处理器核心外部的堆栈扩展。举例来说,处理器核心可在核心堆栈变为充满时将堆栈内容的至少一部分转移到堆栈扩展。堆栈扩展驻存在处理器核心外部的高速缓冲存储器或其它存储器内,且补充处理器核心内可用的有限堆栈大小。处理器核心还确定处理器核心内的堆栈何时下降到例如阈值条目数目的阈值大小以下。举例来说,阈值条目数目可为零。在此情况下,当堆栈变为空时,处理器核心将维持在堆栈扩展中的内容的至少一部分转移回到处理器核心内的堆栈中。换句话说,处理器核心用处理器核心外 ...
【技术保护点】
一种方法,其包括: 确定处理器的核心内的堆栈的内容是否超过阈值大小;以及 当所述堆栈的所述内容超过所述阈值大小时,将所述堆栈的所述内容的至少一部分转移到所述处理器的所述核心外部的堆栈扩展。
【技术特征摘要】
【国外来华专利技术】US 2006-6-6 11/448,2721.一种方法,其包括:确定处理器的核心内的堆栈的内容是否超过阈值大小;以及当所述堆栈的所述内容超过所述阈值大小时,将所述堆栈的所述内容的至少一部分转移到所述处理器的所述核心外部的堆栈扩展。2.根据权利要求1所述的方法,其进一步包括:在所述处理器的所述核心内维持多个堆栈,其中所述多个堆栈中的每一者对应于由所述处理器执行的应用程序的多个线程中的不同一者;以及在所述处理器的所述核心外部维持多个堆栈扩展,其中所述堆栈扩展中的每一者对应于所述处理器的所述核心内的所述堆栈中的一者,其中转移所述内容的至少一部分包括将所述处理器的所述核心内的所述堆栈中一者的所述内容的至少一部分转移到相应的堆栈扩展。3.根据权利要求2所述的方法,其中所述堆栈中的每一者具有相等大小,且所述堆栈的数目对应于所述线程的数目。4.根据权利要求2所述的方法,其中所述堆栈中的每一者针对不同应用程序具有不同大小。5.根据权利要求2所述的方法,其进一步包括将所述处理器的所述核心内的所述堆栈中的第二者的所述内容的至少一部分转移到相应的堆栈扩展。6.根据权利要求1所述的方法,其中所述处理器的所述核心内的所述堆栈与应用程序的线程相关联,所述方法进一步包括在所述处理器的所述核心内的所述堆栈的所述内容被转移到所述堆栈扩展时将所述应用程序的所述线程置于空闲状态。7.根据权利要求6所述的方法,其进一步包括将所述堆栈扩展的所述内容转移回到所述堆栈,以及在所述堆栈扩展的所述内容被转移回到所述堆栈时将所述应用程序的所述线程置于空闲状态。8.根据权利要求1所述的方法,其进一步包括在将所述堆栈的所述内容的至少一部分转移回到所述堆栈扩展之后将新条目推入到所述处理器的所述核心内的所述堆栈上。9.根据权利要求8所述的方法,其进一步包括:应用堆栈计数器以跟踪所述处理器的所述核心内的所述堆栈中的条目数目;以及当所述堆栈计数器达到阈值时确定所述堆栈内容超过所述阈值大小。10.根据权利要求1所述的方法,其进一步包括应用共用堆栈计数器以跟踪所述核心内的所述堆栈和所述堆栈扩展两者中的条目。11.根据权利要求1所述的方法,其进一步包括:确定所述内容下降到第二阈值大小以下;以及当所述堆栈下降到所述第二阈值大小以下时,将所述处理器的所述核心外部的所述堆栈扩展的至少一部分转移到所述处理器的所述核心内的所述堆栈。12.根据权利要求1所述的方法,其进一步包括调整计数器以跟踪所述堆栈内容的转移到所述堆栈扩展的所述部分。13.根据权利要求1所述的方法,其中转移所述堆栈的所述内容的至少一部分包括在由所述处理器的其它资源利用的数据总线上转移所述堆栈的所述内容的所述部分。14.根据权利要求1所述的方法,其中所述处理器的所述核心外部的所述堆栈扩展包括所述处理器的共用高速缓冲存储器内的堆栈扩展。15.根据权利要求1所述的方法,其中所述处理器的所述核心外部的所述堆栈扩展包括所述处理器外部的存储器内的堆栈扩展。16.根据权利要求1所述的方法,其中转移所述堆栈的所述内容的至少一部分包括转移所述堆栈的整个内容。17.根据权利要求1所述的方法,其中所述堆栈扩展包括第一堆栈扩展,所述方法进一步包括当所述第一堆栈扩展的所述内容超过阈值大小时将所述第一堆栈扩展的所述内容的至少一部分转移到第二堆栈扩展。18.根据权利要求1所述的方法,其中所述核心是第一核心,所述堆栈是第一堆栈,且所述堆栈扩展是第一堆栈扩展,所述方法进一步包括:确定所述处理器的第二核心内的第二堆栈的内容是否超过阈值大小;以及当所述第二堆栈的所述内容超过所述阈值大小时,将所述第二堆栈的所述内容的至少一部分转移到所述处理器的所述第二核心外部的第二堆栈扩展。19.根据权利要求1所述的方法,其中所述第一和第二堆栈扩展驻存在共用高速缓存存储器内。20.根据权利要求1所述的方法,其进一步包括将所述堆栈和所述堆栈扩展作为连续的高速缓冲存储器来存取。21.一种装置,其包括:处理器,其具有处理器核心,所述处理器核心包含:控制单元,其用以控制所述处理器的操作,以及第一存储器,其存储所述处理器核心内的堆栈;以及第二存储器,其存储所述处理器核心外部的堆栈扩展,其中所述控制单元在所述堆栈的内容超过阈值大小时将所述堆栈的内容的至少一部分转移到所述堆栈扩展。22.根据权利要求21所述的装置,其中所述堆栈包含所述处理器的所述核心内的多个堆栈,所述多个堆栈中的每一者对应于由所述处理器执行的应用程序的多个线程中的不同一者,所述堆栈扩展包含所述处理器的所述核心外部的多个堆栈扩展,所述堆栈扩展中的每一者对应于所述处理器的所述核心内的所述堆栈中的一者,且其中所述控制单元将所述处理器的所述核心内的所述堆栈中一者的内容的至少一部分转...
【专利技术属性】
技术研发人员:焦国方,于春,杜云,
申请(专利权)人:高通股份有限公司,
类型:发明
国别省市:US[美国]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。