一种管理由处理器的多个线程共享的堆栈的系统和方法包含将共享堆栈的第一部分分配给第一线程,以及将所述共享堆栈的第二部分分配给第二线程。
【技术实现步骤摘要】
【国外来华专利技术】
本专利技术大体涉及数据处理,且更特定来说涉及存储器堆栈操作。
技术介绍
技术的进步已产生可用于执行各种任务的更强大的计算装置。计算装置通常包含 至少一个处理器。为改进计算装置内的指令的处理,处理器有时使用分支预测来预期程序 代码内的分支形成。微处理器可使用返回地址堆栈(RAS)来预测程序执行期间遇到的呼叫 /返回类型分支的返回地址。RAS可为堆栈(后进先出(LIFO)数据结构)的特殊实施方案。 呼叫指令可致使将返回地址推送到RAS上。返回指令可致使从堆栈弹出位于RAS顶部的地 址且用于预测返回地址。当分支预测成功时,从RAS顶部弹出的地址可用于重定向处理器 的指令提取单元。当分支预测不成功时,可计算正确的返回地址以便正确地重定向指令提 取单元。多线程处理器的每一线程可使用其自身的专门RAS,且每一 RAS可具有固定大小。 每一线程可依据正由每一线程执行的指令流而使用其固定大小RAS的不同数目的条目。然 而,多个返回地址堆栈的使用增加了系统的成本。
技术实现思路
一特定实施例可允许对共享堆栈的多线程存取。对共享堆栈的存取可依据每一线 程的当前需要而动态分配给多个线程。共享堆栈的条目可由线程经由线程指针的操纵来指 派和覆写。因为移动线程指针而非移动堆栈地址条目,所以可减少处理和功率需求。共享 堆栈可包含比常规静态多线程返回地址堆栈少的条目,因为共享堆栈的条目可在线程之间 更有效地分布。较少堆栈条目可转化为裸片上的较小空间需求以及增加的性能。在一特定实施例中,揭示一种设备,其包含共享堆栈。所述设备进一步包含控制 器,所述控制器可操作以选择性地将共享堆栈的第一部分分配给第一线程,且选择性地将 共享堆栈的第二部分分配给第二线程。在另一特定实施例中,一种管理由处理器的多个线程共享的堆栈的方法包含将共 享堆栈的第一部分分配给第一线程,以及将共享堆栈的第二部分分配给第二线程。在另一特定实施例中,一种计算机可读有形媒体存储计算机可执行的指令。所述 指令包含可由计算机执行以将共享堆栈的第一部分分配给第一线程且将共享堆栈的第二 部分分配给第二线程的指令。所揭示的实施例中的至少一者提供的特定优点可源自共享堆栈经配置以用于由 多个线程进行共享存取。共享堆栈可包含比每一线程存取单独堆栈的系统常规上所需要的 数目少的总条目。较小的条目总数可产生裸片上的较小空间需求以及减小的复杂性和功率 需求。所揭示的实施例中的一者或一者以上促成的减小的堆栈大小和其它优点可进一步改 进存储器分布和堆栈存取效率。在检视整个申请案后,将明白本专利技术的其它方面、优点和特征,申请案包含以下部分附图说明具体实施方式和权利要求书。附图说明图1是经配置以协调对共享堆栈的多线程存取的系统的特定说明性实施例的框图2是包含经配置以存取共享堆栈的经激活线程的系统的特定说明性实施例的框图3是经配置以使线程能够动态存取共享堆栈的条目的系统的特定说明性实施例的框图4是经配置以当第二线程变为作用中且存取共享堆栈时协调对共享堆栈的多线程存取的系统的特定说明性实施例的框图5是经配置以当第二线程获取共享堆栈的条目且准备覆写第一线程的条目时协调对共享堆栈的多线程存取的系统的特定说明性实施例的框图6是经配置以当第二线程覆写第一线程的条目时协调对共享堆栈的多线程存取的系统的特定说明性实施例的框图7是管理由处理器的多个线程共享的堆栈的方法的特定说明性实施例的流程图8是实现对共享堆栈的多线程存取的方法的特定说明性实施例的流程图;以及图9是包含多个线程上的共享堆栈存取的便携式装置的框图。具体实施方式本专利技术揭示一种系统,其包含由多线程处理器的多个线程共享 的存储器堆栈。共享堆栈的条目可由堆栈控制器动态分配给给定线程。利用此分配,共享堆栈的每一线程的所分配部分经设定大小以实现有效堆栈利用率且考虑到公平策略。共享堆栈可包含比各自专用于不同线程的单独堆栈将使用的数目少的堆栈条目。参看图1,描绘在多个线程之间共享堆栈的系统的特定实施例,且其大体表示为 100。系统100包含耦合到存储器104的控制器102。控制器102响应于多线程处理器160。 存储器104包含共享堆栈105。控制器102响应于来自多线程处理器160的堆栈操作请求以向多线程处理器160的个别线程分配和解除分配共享堆栈105的部分,且执行用于发出请求的线程的共享堆栈105的堆栈操作。多线程处理器160可包含可执行一个或一个以上线程的一个或一个以上多线程处理器核心106。举例来说,多线程处理器160可执行第一线程108 (线程O)、第二线程 110(线程I)、第三线程112(线程2)和第η线程114(线程(η_1))。多线程处理器160可向控制器102发送针对线程108-114中的一者或一者以上的堆栈操作请求。举例来说,多线程处理器160可向控制器102发送推送请求138,其识别产生推送请求138的线程且进一步识别待推送到共享堆栈105的发出请求的线程的部分上的数据。作为另一实例,多线程处理器160可向控制器102发送弹出请求136。弹出请求136可识别多个线程108-114中的发出请求的线程,且请求最近添加到共享堆栈105的发出请求的线程的部分的数据的返回。控制器102操作以选择性地将共享堆栈105的部分分配给个别线程。举例来说, 控制器102可选择性地将共享堆栈105的第一部分116分配给第一线程108,将共享堆栈 105的第二部分118分配给第二线程110,将共享堆栈105的第三部分120分配给第三线程 112,且将共享堆栈105的第η部分122分配给第η线程114。在特定实施例中,共享堆栈 105可包含硬件堆栈。或者,共享堆栈105可实施在例如随机存取存储器(RAM)等其它存储器中。控制器102响应于服从公平策略140的线程请求而分配共享堆栈105的部分 116-122,且经由堆栈指针142维持指示经分配部分116-122的分配和使用的数据。举例来说,公平策略140可指示在线程之间同等地、以用于每一线程的固定大小部分、以用于每一执行中线程的固定大小部分、以用于每一线程的可变大小部分、以用于每一执行中线程的可变大小部分、以相对于堆栈未中的数目的经加权平均大小部分或以某一其它方式分配共享堆栈105。堆栈指针142包含对应于第一线程108的指针162、对应于第二线程110的指针164、对应于第三线程112的指针166和对应于第η线程114的指针168。举例来说,线程指针162-168中的每一者可包含顶部条目指针、堆栈顶部指针、堆栈底部指针、底部条目指针,以及一个或一个以上额外状态位,如参看图2-6所描述。控制器102使用指针162-168 来维持使用循环缓冲器分配给每一线程的单独堆栈。第一部分116可经分配用于对应于第一线程108的堆栈操作。第一部分116可包含可存储第一线程108的一个或一个以上数据元素124的一个或一个以上堆栈条目(未图示)。第二部分118可经分配用于第二线程110的堆栈操作,且可包含可存储第二线程110 的一个或一个以上数据元素126的一个或一个以上堆栈条目。第三部分120可经分配用于对应于第三线程112的堆栈操作,且可包含可存储第三线程112的一个或一个以上数据元素128的一个或一个以上堆栈条目。第η部分122本文档来自技高网...
【技术保护点】
【技术特征摘要】
【国外来华专利技术】2010.07.16 US 12/837,5721.一种设备,其包括 共享堆栈;以及 控制器,其可操作以选择性地将所述共享堆栈的第一部分分配给第一线程,且选择性地将所述共享堆栈的第二部分分配给第二线程。2.根据权利要求1所述的设备,其中所述第一部分不与所述第二部分邻接。3.根据权利要求1所述的设备,其中所述第一部分与所述第二部分邻接。4.根据权利要求1所述的设备,其中所述共享堆栈选自由硬件堆栈和随机存取存储器RAM组成的群组。5.根据权利要求1所述的设备,其进一步包括处理器,所述处理器包含经配置以产生与所述共享堆栈相关联的堆栈操作请求的多线程处理器核心。6.根据权利要求1所述的设备,其中所述控制器操作以响应于堆栈操作请求。7.根据权利要求6所述的设备,其中所述堆栈操作请求包含推送和弹出中的至少一者。8.根据权利要求6所述的设备,其中所述堆栈操作请求包含函数返回地址。9.根据权利要求1所述的设备,其中所述第一线程覆写所述第二部分内的数据元素。10.根据权利要求1所述的设备,其中所述第一部分和所述第二部分是动态分配的。11.根据权利要求1所述的设备,其中所述控制器包含 底部条目指针,其经配置以指向所述第一线程经配置以写入到的所述共享堆栈的最底部条目; 顶部条目指针,其经配置以指向所述第一线程经配置以写入到的所述共享堆栈的最顶部条目; 堆栈顶部指针,其经配置以指向与所述第一线程相关联的所述共享堆栈的最近写入的条目;以及 堆栈底部指针,其经配置以指向与所述第一线程相关联的所述共享堆栈的最老有效条目。12.根据权利要求1所述的设备,其中所述控制器包含经配置以指示所述第一线程是否正执行过程的线程作用中状态位。13.根据权利要求1所述的设备,其中所述控制器包含经配置以指示是否使用与所述第一线程相关联的所述共享堆栈的条目的空位。14.根据权利要求1所述的设备,其中所述控制器包含经配置以指示所述第一线程已在所述共享堆栈内缠绕的缠绕堆栈位。15.根据权利要求1所述的设备,其中所述控制器经配置以预测函数返回地址,其中第一指令确定所述返回地址,且其中共享堆栈未中提示第二指令确定所述函数返回地址。16.根据权利要求1所述的...
【专利技术属性】
技术研发人员:史蒂芬·R·香农,苏雷什·K·文库马汉提,罗伯特·A·莱斯特,
申请(专利权)人:高通股份有限公司,
类型:
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。