[發明專利]用于在單指令多數據SIMD處理系統中控制發散分支指令的方法和設備有效
| 申請號: | 201380046580.1 | 申請日: | 2013-08-08 |
| 公開(公告)號: | CN104603749B | 公開(公告)日: | 2017-09-19 |
| 發明(設計)人: | 陳琳 | 申請(專利權)人: | 高通股份有限公司 |
| 主分類號: | G06F9/38 | 分類號: | G06F9/38 |
| 代理公司: | 北京律盟知識產權代理有限責任公司11287 | 代理人: | 宋獻濤 |
| 地址: | 美國加利*** | 國省代碼: | 暫無信息 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 多線程 處理 系統 執行 例程 | ||
1.一種用于在單指令多數據SIMD處理系統中控制發散分支指令的方法,所述方法包括:
通過一或多個處理器基于第一最小恢復計數器MINRC來控制對程序的執行,所述第一MINRC指定指示與所述程序的執行的多個線程相關聯的多個恢復計數器值中的最小恢復計數器值的值,其中與所述多個線程相關聯的多個恢復計數器值中的每一者在所述多個線程中的對應于相應恢復計數器值的相應線程無效的情況下,指示所述多個線程中的所述相應線程經調度以被激活時的全局程序計數器的程序計數器值;以及
利用所述一或多個處理器通過執行以下操作來基于與所述程序的子例程相關聯的第二MINRC控制對所述子例程的執行:響應于執行子例程調用指令而保存所述第一MINRC的狀態且致使基于所述第二MINRC來控制對所述子例程的執行,以及響應于執行子例程返回指令而致使基于所述第一MINRC的所述所保存狀態來控制對所述程序的執行,所述第二MINRC指定指示來自所述多個恢復計數器值的子集的最小恢復計數器值的值,所述多個恢復計數器值對應于在起始對所述子例程的執行時為有效的所述多個線程中的所有線程。
2.根據權利要求1所述的方法,
其中保存所述第一MINRC的所述狀態包括將存儲于所述第一MINRC的MINRC寄存器中的值推入到堆棧存儲結構上,且
其中致使基于所述第二MINRC來控制對所述子例程的執行包括用所述第二MINRC的初始值來改寫存儲于所述MINRC寄存器中的值。
3.根據權利要求1所述的方法,其中致使基于所述第一MINRC的所述所保存狀態來控制對所述程序的執行包括:
從堆棧存儲結構拿取所述第一MINRC的所述所保存狀態;以及
用對應于所述第一MINRC的所述所保存狀態的值來改寫存儲于MINRC寄存器中的值。
4.根據權利要求1所述的方法,其中所述多個恢復計數器值中的每一者在所述多個線程中的對應于所述相應恢復計數器值的所述相應線程有效的情況下等于默認值。
5.根據權利要求1所述的方法,其進一步包括:
將所述第二MINRC設定到指示來自所述多個恢復計數器值的所述子集的最小恢復計數器值的值。
6.根據權利要求5所述的方法,其中設定所述第二MINRC包括:
對于每一無效線程來說,如果相應無效線程的恢復計數器值小于所述第二MINRC且所述相應無效線程的恢復計數器值大于或等于指示所述子例程的第一指令的值,那么將所述第二MINRC設定成等于所述相應無效線程的恢復計數器值。
7.根據權利要求5所述的方法,其中設定所述第二MINRC包括:
對于每一無效線程來說,如果相應無效線程的恢復計數器值小于所述第二MINRC值且與所述相應無效線程相關聯的旗標指示在起始對所述子例程的執行時所述相應無效線程是有效的,那么將所述第二MINRC設定成等于所述相應無效線程的恢復計數器值。
8.根據權利要求7所述的方法,其進一步包括:
對于所述多個線程中的每一者來說,如果在起始對所述子例程的執行時相應線程是有效的,那么響應于起始對所述子例程的執行而將對應于相應線程的旗標設定到有效狀態;以及
對于所述多個線程中的每一者來說,如果在起始對所述子例程的執行時相應線程是無效的,那么響應于起始對所述子例程的執行而將對應于相應線程的旗標設定到無效狀態。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于高通股份有限公司,未經高通股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201380046580.1/1.html,轉載請聲明來源鉆瓜專利網。





