1.一种被配置为执行多个线程的数据处理设备,所述数据处理设备包括:
通用程序计数器,用于标识指令流中要针对所述多个线程的至少一子集执行的一个指令,其中所述子集中的每一线程具有相关联的、用于标识所述指令流中的一个指令的线程程序计数器;
选择器,被配置为选择线程的所述子集中的选定线程并且将所述通用程序计数器设定为与所述选定线程相关联的线程程序计数器;以及
处理器,被配置为针对线程的所述子集中包括所述选定线程的一个或多个线程执行由所述通用程序计数器标识的指令,
其中线程的所述子集与至少一个锁定参数相关联,该至少一个锁定参数用于追踪线程的所述子集中的哪个线程具有对共享资源的独占访问;
其中所述处理器被配置为响应于针对一线程执行的第一指令而修改所述至少一个锁定参数来指示此线程已经获得对所述共享资源的独占访问,并且响应于针对此线程执行的第二指令而修改与所述线程相关联的所述至少一个锁定参数来指示所述线程不再具有对所述共享资源的独占访问;并且
其中所述选择器被配置为基于所述至少一个锁定参数选择所述选定线程。
2.如权利要求1所述的数据处理设备,
其中所述处理器被配置为响应于包括针对一线程执行的至少一个锁定指令的锁定序列而授权此线程对所述共享资源的独占访问。
3.如权利要求2所述的数据处理设备,
其中所述锁定序列不包括所述第一指令。
4.如任一前述权利要求所述的数据处理设备,
其中所述处理器被配置为响应于包括针对一线程执行的至少一个解锁指令的解锁序列而为此线程放弃对所述共享资源的独占访问。
5.如权利要求4所述的数据处理设备,
其中所述解锁序列不包括所述第二指令。
6.如任一前述权利要求所述的数据处理设备,
其中所述选择器被配置为优先于由所述至少一个锁定参数指示为不具有对所述共享资源的独占访问的第二线程而选择由所述至少一个锁定参数指示为具有对所述共享资源的独占访问的第一线程来作为所述选定线程。
7.如任一前述权利要求所述的数据处理设备,
其中所述选择器被配置为基于与线程的所述子集中的每一线程相关联的函数调用深度参数来选择所述选定线程。
8.如任一前述权利要求所述的数据处理设备,
其中所述选择器被配置为基于与线程的所述子集中的每一线程相关联的所述线程程序计数器来选择所述选定线程。
9.如任一前述权利要求所述的数据处理设备,其中所述子集中的每一线程具有相应的锁定参数,其中所述处理器被配置为:响应于针对一线程执行的第一指令而修改与此线程相对应的锁定参数来指示所述线程已经获得对所述共享资源的独占访问,并且响应于针对所述线程执行的第二指令而修改与所述线程相对应的锁定参数来指示所述线程不再具有对所述共享资源的独占访问。
10.如权利要求9所述的数据处理设备,其中所述处理器被配置为容许第一线程具有对第一共享资源的独占访问,同时第二线程具有对第二共享资源的独占访问。
11.如权利要求9和10中任一项所述的数据处理设备,
其中所述选择器被配置为基于线程的所述子集中的每一线程的相应锁定参数选择第一组线程;
其中所述选择器被配置为基于函数调用深度参数从所述第一组线程间选择第二组线程;
其中所述选择器被配置为基于与所述第二组线程中的线程相关联的线程程序计数器从所述第二组线程中选择所述选定线程。
12.如权利要求1至8中任一项所述的数据处理设备,其中所述至少一个锁定参数包括在线程的所述子集之间共享的共享锁定参数以及指示线程的所述子集中的哪个线程具有对共享资源的独占访问的锁定所有者参数。
13.如权利要求12所述的数据处理设备,其中所述共享锁定参数包括锁定旗标,该锁定旗标指示线程的所述子集中的任何者是否具有对共享资源的独占访问。
14.如权利要求12和13中任一项所述的数据处理设备,其中所述共享锁定参数包括锁定计数,该锁定计数指示由所述锁定所有者参数所指示的线程具有独占访问的资源的数目。
15.如权利要求12至14中任一项所述的数据处理设备,其中如果第一线程具有对第一共享资源的独占访问,所述处理器被配置为防止第二线程具有对第二共享资源的独占访问。
16.如权利要求12至15中任一项所述的数据处理设备,其中如果所述至少一个锁定参数指示一线程具有对共享资源的独占访问,则所述选择器被配置为选择由所述锁定所有者参数所指示的线程作为所述选定线程;以及
如果所述至少一个锁定参数指示无线程具有对共享资源的独占访问,则所述选择器被配置为基于函数调用深度参数从线程的所述子集间选择线程的进一步子集,并且基于与线程的所述进一步子集中的线程相关联的线程程序计数器从线程的所述进一步子集间选择所述选定线程。
17.如任一前述权利要求所述的数据处理设备,
其中所述处理器被配置为响应于所述第一指令而递增所述至少一个锁定参数;以及
其中所述处理器被配置为响应于所述第二指令而递减所述至少一个锁定参数。
18.如权利要求17所述的数据处理设备,其中所述至少一个锁定参数指示线程具有独占访问的共享资源的数目。
19.如任一前述权利要求所述的数据处理设备,
其中线程的所述子集中的所述一个或多个线程包括具有匹配所述选定线程的相应线程参数的一个或多个相关联的线程参数的线程,所述一个或多个相关联的线程参数至少包括所述线程程序计数器。
20.如任一前述权利要求所述的数据处理设备,其中所述指令包括微操作。
21.如任一前述权利要求所述的数据处理设备,
其中所述第一指令和所述第二指令在至少一个预定义指令集中被编码为NOOP指令。
22.如任一前述权利要求所述的数据处理设备,
其中所述处理器被配置为响应于所述第一指令和所述第二指令中的至少一者而执行另一操作。
23.如权利要求22所述的数据处理设备,
其中所述另一操作为以下各项中的一项或多项:作为用于获得对所述共享资源的独占访问的锁定序列的一部分的操作;作为用于放弃对所述共享资源的独占访问的解锁序列的一部分的操作;用于访问所述共享资源的操作;用于确定所述线程是否具有对所述共享资源的独占访问的操作;以及比较与交换操作。
24.如任一前述权利要求所述的数据处理设备,其中所述共享资源包括存储器中的数据。
25.如权利要求24所述的数据处理设备,
其中所述处理器被配置为在放弃对所述共享资源的独占访问之前向存储器发布存储器屏障操作。
26.一种用于针对多个线程中的子集执行指令流的数据处理方法,其中所述子集中的每一线程具有相关联的、用于标识所述指令流中的一个指令的线程程序计数器,所述数据处理方法包括以下步骤:
选择线程的所述子集中的选定线程,并且将通用程序计数器设定为与所述选定线程相关联的线程程序计数器,其中所述通用程序计数器标识所述指令流中要针对线程的所述子集执行的一个指令;以及
针对线程的所述子集中包括所述选定线程的一个或多个线程执行由所述通用程序计数器所标识的指令,
其中线程的所述子集与至少一个锁定参数相关联,该至少一个锁定参数用于追踪线程的所述子集中的何者具有对共享资源的独占访问;
其中所述至少一个锁定参数响应于针对一线程执行的第一指令而被修改以指示此线程已经获得对所述共享资源的独占访问,并且响应于针对此线程执行的第二指令而被修改以指示所述线程不再具有对所述共享资源的独占访问;并且
其中所述选择器被配置为基于所述至少一个锁定参数选择所述选定线程。
27.一种被配置为执行多个线程的数据处理设备,所述数据处理设备包括:
通用程序计数器装置,用于标识指令流中要针对所述多个线程的至少一子集执行的一个指令,其中所述子集中的每一线程具有相关联的、用于标识所述指令流中的一个指令的线程程序计数器装置;
选择装置,用于选择线程的所述子集中的选定线程并且将所述通用程序计数器装置设定为与所述选定线程相关联的线程程序计数器装置;以及
处理器装置,用于针对线程的所述子集中包括所述选定线程的一个或多个线程执行由所述通用程序计数器装置标识的指令,
其中线程的所述子集与至少一个锁定参数相关联,该至少一个锁定参数用于追踪线程的所述子集中的哪个线程具有对共享资源的独占访问;
其中所述处理器装置用于响应于针对一线程执行的第一指令而修改所述至少一个锁定参数来指示此线程已经获得对所述共享资源的独占访问,并且响应于针对此线程执行的第二指令而修改与所述线程相关联的所述至少一个锁定参数来指示所述线程不再具有对所述共享资源的独占访问;并且
其中所述选择装置用于基于所述至少一个锁定参数选择所述选定线程。